Flix API (7.0.0)

Download OpenAPI specification:Download

The Flix API is available separately under Foundry's proprietary license.

Legacy Documentation

If you are looking for API documentation for Flix versions prior to 6.5, please go to the legacy documentation site.

Introduction

This document describes how to interact with the Flix RESTful API. It should give you a good basis to work from to be able to execute common tasks required to automate some Flix server-side features.

Flix is a story development hub for animated film and TV, gaming, and other visual narrative mediums. Watch the video below for a brief overview of how Flix works.

Getting started

We recommend to take a look at our flix-scripts repository on GitHub. This repository contains a handful of useful scripts written in Python. These scripts are free to be modified and adjusted to your own needs, and should be a very useful baseline to start from.

The /info endpoint serves as a good starting point to get acquainted with the Flix API. This endpoint behaves differently depending on if you are authorized or not. You can make a request to this endpoint with no Authorization header, and it will return a JSON response announcing the server name. However, if you make a request to the same endpoint with an authenticated signature, you will receive a JSON response containing more information about the Flix server.

One of
name
string
Default: "flix"

The server name configured for this server.

Example
{
  • "name": "flix"
}

Once you have both unauthenticated and authenticated requests working, you are all set to use the other endpoints available.

Authentication

A user can be authenticated with Flix via three mechanisms:

  • Username and password
  • Google OAuth token
  • LDAP

The /methods endpoint can be used to identify whether OAuth tokens can be used for authentication.

Once a user has been successfully authenticated using one of these methods, Flix will return an access key, which the client must use to authorize any future requests:

id
string

A public, unique identifier of this access key.

secret_access_key
string

Used to sign requests to authenticate the user. Should be kept secret.

created_date
string <date-time>

The date the access key was created.

expiry_date
string <date-time>

The date the access key will become invalid.

object (User)

A Flix user.

{
  • "id": "rbcnnb5MrWHW19Y76tjy",
  • "secret_access_key": "35Pt4rkxefpuISF8eetmBJpnSyM7zEAz4x0FE0j3",
  • "created_date": "2019-08-24T14:15:22Z",
  • "expiry_date": "2019-08-24T14:15:22Z",
  • "owner": {
    }
}

Sign in as a Flix or LDAP user

This endpoint will authenticate your username and password credentials, and provide an authentication key for you to use in subsequent API requests. This endpoint is the sole endpoint to use basic authentication.

Each user may only have one access key. Subsequent requests to this endpoint will invalidate any previously created keys.

Authorizations:
Basic auth

Responses

Request samples

import requests.auth

API_BASE = "http://localhost:8080"
USERNAME = "admin"
PASSWORD = "admin"

if __name__ == "__main__":
    response = requests.post(f"{API_BASE}/authenticate", auth=(USERNAME, PASSWORD))

    if response.status_code == 201:
        print("Successfully logged in.")
        data = response.json()
        print("Access key ID:", data["id"])
        print("Secret access key:", data["secret_access_key"])
    else:
        print("Error when logging in:", response.json()["message"])

Response samples

Content type
application/json
{
  • "id": "rbcnnb5MrWHW19Y76tjy",
  • "secret_access_key": "35Pt4rkxefpuISF8eetmBJpnSyM7zEAz4x0FE0j3",
  • "created_date": "2019-08-24T14:15:22Z",
  • "expiry_date": "2019-08-24T14:15:22Z",
  • "owner": {
    }
}

Sign in with Google

This endpoint will authenticate the user as a Google user, and provide an authentication key for you to use in subsequent API requests. The token expected by this endpoint should be generated by authenticating with Google using OAuth 2.0.

Authorizations:
Google
Request Body schema: application/json
provider
required
string

What provider to use for OAuth authentication.

Responses

Request samples

Content type
application/json
{
  • "provider": "Google"
}

Response samples

Content type
application/json
{
  • "id": "rbcnnb5MrWHW19Y76tjy",
  • "secret_access_key": "35Pt4rkxefpuISF8eetmBJpnSyM7zEAz4x0FE0j3",
  • "created_date": "2019-08-24T14:15:22Z",
  • "expiry_date": "2019-08-24T14:15:22Z",
  • "owner": {
    }
}

Fetch login methods configuration

Provides the permitted OAuth and SSO configurations for the server network. This can be used to determine whether a server network permits Google authentication, for example.

This information is available without logging in first.

Responses

Response samples

Content type
application/json
{
  • "oauth_enabled": true,
  • "oauth_domain": "my_domain.com",
  • "oauth_providers": [
    ],
  • "sso_enabled": true
}

Extend session

Extend the session of a currently authenticated user by extending the expiry time of their access key by 24 hours.

This will return an error if the user has not been authenticated yet; otherwise returns the extended access key.

Authorizations:
Signed auth

Responses

Response samples

Content type
application/json
{
  • "id": "rbcnnb5MrWHW19Y76tjy",
  • "secret_access_key": "35Pt4rkxefpuISF8eetmBJpnSyM7zEAz4x0FE0j3",
  • "created_date": "2019-08-24T14:15:22Z",
  • "expiry_date": "2019-08-24T14:15:22Z",
  • "owner": {
    }
}

Sign out

Delete the access key provided in the request URL, effectively signing out the user it is associated with.

This endpoint is only permitted for admins.

Authorizations:
Signed auth
path Parameters
keyID
required
string[a-zA-Z0-9]+
Example: blwO9ngeNXfkAafy40qi

Authentication key.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "invalid credentials",
  • "status_code": 401
}

Authorization

Flix endpoints can be categorised as follows:

  1. Authentication endpoints: These are endpoints used to authenticate a client and that return an access key, as described in Authentication.
  2. Public endpoints: These are endpoints that do not require authentication. For instance, they may return different data depending on if you are authenticated or not, or they return information required for the authentication process.
  3. Signed endpoints: These endpoints require requests to be signed using the secret access key returned during authentication. They constitute the majority of the endpoints in the Flix API.

In this section, we describe how to access signed endpoints, along with recommendations on how best to handle the access key from a security point of view.

Security recommendations

The access key ID and secret access key should only be stored for the current session, and discarded once the session ends. Access keys have a finite duration, so we recommend obtaining and cycling them regularly, which can be done using the /authenticate/extend endpoint.

Do not store or persist access keys to disk or share them with any other user.

We recommend you configure SSL/TLS to encrypt your HTTP API.

Flix API signing process

To access a signed endpoint, the client must present its access key ID, along with a signature of the request. The signature is a concatenation of data such as the request body, request path and the current time, hashed using the secret access key. A new signature must be generated for each request. If the client presents the server with an incorrect signature, the request will be rejected with a 403 error.

It is very important to understand that these requests are time sensitive and therefore require clocks on client and server machines to be correctly set. They do not have to be in the same timezone, but they must present an accurate time. If the client's clock differs from the server's by more than 15 minutes, the request will be rejected.

See the /info endpoint for an example of the signing process.

Example code

To make it as simple as possible for developers to get started using the Flix API we have provided example scripts for interacting with the API.

There is an example which specifically demonstrates how requests are signed, and all the code you need to make signed requests using Python. If you wish to use a different language, please get in contact via the Flix support portal.

Server information

Get information about a server

Returns information about the server serving this endpoint. The amount of information returned depends on the privileges of the requesting user.

Authorizations:
Signed auth

Responses

Request samples

import base64
import datetime
import hmac

import requests

API_BASE = "http://localhost:8080"
# the access key details returned by /authenticate
# should never be stored in a file in practice
ACCESS_KEY_ID = "jUiy2miRpcpwOMFQJKd1"
SECRET_ACCESS_KEY = "hz24ocDYifCdndmaMSnKIjqAX75BofaJ43hMOGAN"
# the date format that must be used for the request signature
DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ"


def get_time_rfc3999():
    utc_now = datetime.datetime.now(datetime.timezone.utc)
    return utc_now.strftime(DATE_FORMAT)


def get_signature(
    # the secret part of the access key returned on successful authentication
    secret_access_key,
    # the HTTP method, e.g. GET, POST, DELETE, PUT or PATCH
    method,
    # the request body
    body,
    # the value of the Content-Type header for the request, e.g. application/json
    content_type,
    # the current UTC time in RFC 3339 format, e.g. 2009-11-10T23:00:00Z
    utc_time,
    # the path to request, not including server name or query parameters
    path,
):
    content = method + "\n"

    if len(body) > 0:
        content += body + "\n"
        content += content_type + "\n"
    else:
        content += "\n\n"

    content += utc_time + "\n"
    content += path

    signature = hmac.digest(secret_access_key.encode(), content.encode(), "sha256")
    return base64.b64encode(signature).decode()


if __name__ == "__main__":
    method = "GET"
    path = "/info"
    utc_time = get_time_rfc3999()

    signature = get_signature(SECRET_ACCESS_KEY, method, "", "", utc_time, path)
    headers = {
        "X-Date": utc_time,
        "Authorization": "FNAUTH {}:{}".format(ACCESS_KEY_ID, signature),
    }

    response = requests.get(f"{API_BASE}{path}", headers=headers)
    if response.status_code == 200:
        print("Flix version:", response.json()["version"])
    else:
        print("Error:", response.json()["message"])

Response samples

Content type
application/json
Example
{
  • "name": "flix"
}

Fetch the server logs

Returns the server logs as a data stream.

Authorizations:
Signed auth
query Parameters
limitKb
integer
Example: limitKb=1000

The max number of kilobytes of data to return.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch the OpenAPI schema

Fetch the OpenAPI compliant schema in YAML format.

Authorizations:
Signed auth

Responses

Fetch the server configuration

Authorizations:
Signed auth
path Parameters
serverID
required
string[a-zA-Z0-9-]+
Example: cd846267-7e85-457b-b9fe-d2715f0c6757

ID of the server.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "region": "default",
  • "ip": "192.168.1.104",
  • "port": 8080,
  • "running": true,
  • "start_date": "2019-08-24T14:15:22Z",
  • "hostname": "flix-001.example.com",
  • "db_ident": "0dde4ef9-aa06-4517-b678-1829b7e9950a",
  • "is_ssl": true,
  • "transfer_port": 9091,
  • "proxy_host": "proxy.flix.com",
  • "proxy_port": 9090,
  • "proxy_transfer_port": 9293
}

Fetch running servers

Fetch all servers currently marked as "running". This response reads from a time limited cache and may require a few minutes after a server becomes online or offline before it is included in the response.

Authorizations:
Signed auth

Responses

Response samples

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

User and group management

Group filtering

Some endpoints may take an optional permissions query parameter to filter groups. This parameter should be a Base64-encoded JSON object with the following format:

name
string

Name is the name of the permission.

mask
integer

The permission mask for this permission.

{
  • "name": "flix::/shows",
  • "mask": 35
}

Create a new user

Authorizations:
Signed auth
Request Body schema: application/json
created_date
string <date-time>

When the user was created.

deleted
boolean

Whether the user has been deleted.

email
string

The user's email.

Array of objects (GroupRolePairList)

What groups are assigned to the user.

id
integer

A globally unique ID for the user.

is_admin
boolean

True if the user is an administrator.

is_system
boolean

True if the user is a system user. Generally only true for the user "system".

is_third_party
boolean

True if the user comes from a third-party user management system, such as OAuth or LDAP.

password
string

The user's password, only set by the client when creating or updating a user's password. It is never set by the server.

type
string
Enum: "flix" "ldap" "oauth"

The type of user.

username
string

The username of the user.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "email": "user@example.com",
  • "groups": [
    ],
  • "id": 50,
  • "is_admin": true,
  • "is_system": true,
  • "is_third_party": true,
  • "password": "hunter2",
  • "type": "flix",
  • "username": "flixuser",
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "email": "user@example.com",
  • "groups": [
    ],
  • "id": 50,
  • "is_admin": true,
  • "is_system": true,
  • "is_third_party": true,
  • "password": "hunter2",
  • "type": "flix",
  • "username": "flixuser",
  • "metadata": [
    ]
}

Update a user

Updates a user's data. A regular user can only edit their own data. Administrators can edit all users.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

Request Body schema: application/json
created_date
string <date-time>

When the user was created.

deleted
boolean

Whether the user has been deleted.

email
string

The user's email.

Array of objects (GroupRolePairList)

What groups are assigned to the user.

id
integer

A globally unique ID for the user.

is_admin
boolean

True if the user is an administrator.

is_system
boolean

True if the user is a system user. Generally only true for the user "system".

is_third_party
boolean

True if the user comes from a third-party user management system, such as OAuth or LDAP.

password
string

The user's password, only set by the client when creating or updating a user's password. It is never set by the server.

type
string
Enum: "flix" "ldap" "oauth"

The type of user.

username
string

The username of the user.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "email": "user@example.com",
  • "groups": [
    ],
  • "id": 50,
  • "is_admin": true,
  • "is_system": true,
  • "is_third_party": true,
  • "password": "hunter2",
  • "type": "flix",
  • "username": "flixuser",
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "email": "user@example.com",
  • "groups": [
    ],
  • "id": 50,
  • "is_admin": true,
  • "is_system": true,
  • "is_third_party": true,
  • "password": "hunter2",
  • "type": "flix",
  • "username": "flixuser",
  • "metadata": [
    ]
}

Delete a user

Soft deletes a user by setting the deleted field to true.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Fetch a users groups

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

Responses

Response samples

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

Fetch a users group-roles

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

Responses

Response samples

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

Fetch all users

Fetch an array of all users, excluding system users.

Authorizations:
Signed auth

Responses

Response samples

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

Create a new user group

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

A globally unique ID of the group.

title
required
string

The name of the group.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "title": "default"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "default"
}

Update a user group

Authorizations:
Signed auth
path Parameters
groupId
required
integer
Example: 1

ID of the group.

Request Body schema: application/json
id
integer

A globally unique ID of the group.

title
required
string

The name of the group.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "title": "default"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "default"
}

Delete a user group

Permanently delete a user group from the database. This endpoint will error if there is at least one user still assigned to the group. This action is irreversible.

Authorizations:
Signed auth
path Parameters
groupId
required
integer
Example: 1

ID of the group.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Fetch all user groups

Fetch all groups to which the user belongs. For admin users, this will return all groups stored in Flix.

Authorizations:
Signed auth
query Parameters
permissions
string
Example: permissions=eyJuYW1lIjogImZsaXg6Oi91c2VycyIsICJtYXNrIjogNH0K

A Base64-encoded permission object in the JSON format described in Group filtering. If specified, only items where the logged in user has the specified permission will be returned.

Responses

Response samples

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

Fetch all groups with additional details

Fetch all groups with additional structured data. This includes all shows which are assigned to each group and all users with the relevant role pairing.

Authorizations:
Signed auth

Responses

Response samples

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

Fetch all logged in users

Fetch all active access keys.

Authorizations:
Signed auth

Responses

Response samples

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

Fetch metadata for a user

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a user

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a user

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a user

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
userId
required
integer
Example: 25

ID of the user.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Permission management

Create a new role

Creates a new role which may have one or more permissions associated with it.

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

The unique ID of the role.

name
string

The human-readable name of the role.

Array of objects (PermissionList)

A list of permissions associated with this role.

Responses

Request samples

Content type
application/json
{
  • "id": 2,
  • "name": "Regular user",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "name": "Regular user",
  • "permissions": [
    ]
}

Delete a role

Deletes a role and all associated permissions.

Authorizations:
Signed auth
path Parameters
roleID
required
integer
Example: 3

ID of the role

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Update a role

Updates a role, changing its name and replacing all existing permissions.

Authorizations:
Signed auth
path Parameters
roleID
required
integer
Example: 3

ID of the role

Request Body schema: application/json
id
integer

The unique ID of the role.

name
string

The human-readable name of the role.

Array of objects (PermissionList)

A list of permissions associated with this role.

Responses

Request samples

Content type
application/json
{
  • "id": 2,
  • "name": "Regular user",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "name": "Regular user",
  • "permissions": [
    ]
}

Fetch user permissions for a show

Returns the permission mask for all assigned permissions for the user within the specified show.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

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

Fetch global user permissions

Returns the combined permissions from all roles the user is assigned to.

Authorizations:
Signed auth

Responses

Response samples

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

Get permission mask masks

Get an array of permission mask masks. These describe which permission bits can be set on which permission objects. This endpoint returns all permissions recognised by the server.

Authorizations:
Signed auth

Responses

Response samples

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

Fetch all roles

Returns all defined roles and their permissions.

Authorizations:
Signed auth

Responses

Response samples

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

Notification preferences

Flix allows for users to manage their own notification preferences. These notification preferences define whether Flix is permitted to send a notification Type, with a classifying Action to a given user, for a given show association.

Flix only sends notifications to users who have explicit access to shows, via a user group association. This means that while 'admin' users can access all shows, they will not receive notifications unless they are assigned to a show, via a user group, as well as having 'admin' status.

Fetch all notification preferences

Returns all notification preferences associated with the logged in user.

Authorizations:
Signed auth

Responses

Response samples

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

Updates multiple notification preferences

Update multiple notification preferences in one request. Any preferences not included in the PUT request will be unchanged.

Authorizations:
Signed auth
Request Body schema: application/json
Array of objects (NotificationPreference)

Responses

Request samples

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

Response samples

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

Update a notification preference

Authorizations:
Signed auth
Request Body schema: application/json
object (User)

A Flix user.

object (Show)

Represents a show in Flix.

type
string
Value: "email"

The method by which a Notification is sent.

action
string
Enum: "publish to editorial" "publish from editorial"

The classification notification.

permitted
boolean

Whether the Notification can be sent.

Responses

Request samples

Content type
application/json
{
  • "user": {
    },
  • "show": {
    },
  • "type": "email",
  • "action": "publish to editorial",
  • "permitted": true
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "show": {
    },
  • "type": "email",
  • "action": "publish to editorial",
  • "permitted": true
}

Settings

Fetch all settings

Fetches all settings, for all shows and at a studio level

Authorizations:
Signed auth

Responses

Response samples

Content type
application/json
{
  • "studio": [
    ],
  • "show": {
    }
}

Add or update a show setting

Patches a show setting. If the setting is not found, it will be added.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
Array
Key
string
Value
string
Enabled
boolean

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

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

Add or update a studio setting

Patches a studio setting. If the setting is not found, it will be added.

Authorizations:
Signed auth
Request Body schema: application/json
Array
Key
string
Value
string
Enabled
boolean

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

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

Debugging

Verify that a server is running

This is a debug endpoint that requires no authentication and does nothing aside from returning a string response. It can be used to verify that a Flix server is running.

Responses

Response samples

Content type
application/json
"I'm a teapot"

Webhooks

General

The Flix server provides a limited number of events which can be subscribed to by webhooks. Webhooks can be registered with the Flix server, after which any time an event occurs on the Flix server for which this webhook is subscribed to, a payload will be POSTed to the URL provided in the webhook.

Security

When it is first created, the webhook object will be returned from the Flix server with a secret key (36-bit). This is the only time this secret is accessible via the API. Please make a note of the secret key at the time the webhook is registered.

When a payload is sent to a webhook URL, it will include a header which can be used to verify the origin of the message: X-Flix-signature-256 This is a hex-digest string of the SHA265 hash of the message, using the secret key as the key.

Publish to editorial Webhook

This event will be triggered when a sequence revision is published to editorial.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

A sequence revision has been published to editorial

Array of objects (MediaObject)
event_type
string

Which webhook event has occurred

object (Sequence)

A collection of sequence revisions.

object ($defs-SequenceRevision)

Represents a single revision of a sequence.

object (Show)

Represents a show in Flix.

target_app
string
Enum: "premiere" "avid"
object (User)

A Flix user.

Responses

Request samples

Content type
application/json
{
  • "created_media_objects": [
    ],
  • "event_type": "string",
  • "sequence": {
    },
  • "sequence_revision": {
    },
  • "show": {
    },
  • "target_app": "premiere",
  • "user": {
    }
}

Publish to Flix Webhook

This event will be triggered when a publish to Flix from editorial occurs.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

A sequence revision has been created via a publish back to Flix

event_type
string

Which webhook event has occurred

object ($defs-SequenceRevision)

Represents a single revision of a sequence.

object (Sequence)

A collection of sequence revisions.

object (Show)

Represents a show in Flix.

source_app
string
Enum: "premiere" "avid"
object (User)

A Flix user.

Responses

Request samples

Content type
application/json
{
  • "event_type": "Publish to Flix",
  • "new_sequence_revision": {
    },
  • "sequence": {
    },
  • "show": {
    },
  • "source_app": "premiere",
  • "user": {
    }
}

Export to SBP Webhook

This event will be triggered when a sequence revision is exported to Storyboard Pro.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

A sequence revision has been exported to Storyboard Pro

event_type
string

Which webhook event has occurred

object ($defs-SequenceRevision)

Represents a single revision of a sequence.

Responses

Request samples

Content type
application/json
{
  • "event_type": "Sequence revision sent to SBP",
  • "sequence_revision": {
    }
}

An error occurred Webhook

This event will be triggered when an error occurs and is logged to the server logs. This will always be a recovered error.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

An error occurred

message
string
fields
object
event_type
string

Which webhook event has occurred

Responses

Request samples

Content type
application/json
{
  • "message": "string",
  • "fields": { },
  • "event_type": "An error occurred"
}

Panel revision created Webhook

This event will be triggered when a panel revision is created. This event may happen very frequently, and may be triggered in large amounts. It is important that any webhook service subscribing to this event is able to handle the high levels of potential activity.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

A panel revision has been created. This event may occur frequently and in large batches.

event_type
string

Which webhook event has occurred

object (PanelRevision)

As a single revision of a panel, containing information about its artwork and relation to other panel revisions.

Responses

Request samples

Content type
application/json
{
  • "event_type": "Panel revision created",
  • "panel_revision": {
    }
}

Manual ping event Webhook

This event can be used to test connectivity between the Flix server and a webhook service listening for other webhooks. It can be triggered via the Flix API.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

Ping was triggered

event_time
string <date-time>

The time the event was triggered.

event_type
string

Which webhook event has occurred

object (User)

A Flix user.

Responses

Request samples

Content type
application/json
{
  • "event_time": "2019-08-24T14:15:22Z",
  • "event_type": "Ping",
  • "user": {
    }
}

Sequence revision created Webhook

This event will be triggered when a panel revision is created.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

Sequence revision created

event_type
string

Which webhook event has occurred.

object ($defs-SequenceRevision)

Represents a single revision of a sequence.

Responses

Request samples

Content type
application/json
{
  • "event_type": "Sequence revision created",
  • "sequence_revision": {
    }
}

Contact sheet created Webhook

This event will be triggered when a contact sheet is exported.

Authorizations:
Signed auth
header Parameters
X-Flix-Event
required
string
Example: Ping

Which webhook event has occurred

Request Body schema: application/json

Contact sheet created

event_type
string

Which webhook event has occurred

object (Show)

Represents a show in Flix.

object (Sequence)

A collection of sequence revisions.

object ($defs-SequenceRevision)

Represents a single revision of a sequence.

object (Asset)

The structure which we use for storing data for Flix assets.

object (User)

A Flix user.

Responses

Request samples

Content type
application/json
{
  • "event_type": "Contact sheet created",
  • "show": {
    },
  • "sequence": {
    },
  • "sequence_revision": {
    },
  • "asset": {
    },
  • "user": {
    }
}

Register a new webhook

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

The unique ID stored in the Flix database.

name
string

The user set short description of the webhook.

Array of objects (Event)

The list of events which will trigger this webhook to be fired.

protocol
string
Enum: "TCP" "UDP"

The protocol which the Flix server should use to send the payload to the URL.

url
string

The address the Flix server should send the payload to, when the webhook is fired.

object (User)

A Flix user.

skip_tls
boolean

Whether to skip the TLS verification when sending a webhook event payload to a server with HTTPS. This should be set to true if using self-signed certificates.

retry_count
integer

The number of times Flix will attempt to POST a webhook event payload to a URL before it logs an error and stops.

email_on_failure
boolean

If set to true will email all admin users if the webhook fails to deliver the payload to the URL. If RetryCount is greater than 0, the email will only be sent after all retries have been attempted.

disabled
boolean

If set will mean the webhook will not be triggered from any event except pings.

Responses

Request samples

Content type
application/json
{
  • "id": 74,
  • "name": "My first webhook",
  • "events": [
    ],
  • "protocol": "TCP",
  • "user": {
    },
  • "skip_tls": true,
  • "retry_count": 3,
  • "email_on_failure": false,
  • "disabled": false
}

Response samples

Content type
application/json
{
  • "id": 74,
  • "name": "My first webhook",
  • "events": [
    ],
  • "protocol": "TCP",
  • "user": {
    },
  • "skip_tls": true,
  • "retry_count": 3,
  • "email_on_failure": false,
  • "disabled": false,
  • "secret": "9600ee5d-1c66-4d31-b2c3-97ef4a25d053"
}

Fetch webhook creation form

Authorizations:
Signed auth

Responses

Response samples

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

Delete a webhook

Authorizations:
Signed auth
path Parameters
webhookId
required
integer
Example: 3

ID of the webhook.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch a webhook

Authorizations:
Signed auth
path Parameters
webhookId
required
integer
Example: 3

ID of the webhook.

Responses

Response samples

Content type
application/json
{
  • "id": 74,
  • "name": "My first webhook",
  • "events": [
    ],
  • "protocol": "TCP",
  • "user": {
    },
  • "skip_tls": true,
  • "retry_count": 3,
  • "email_on_failure": false,
  • "disabled": false
}

Ping a webhook

Triggers a manual Ping webhook event, the payload for which will be POSTed to the webhook matching the ID provided.

Authorizations:
Signed auth
path Parameters
webhookId
required
integer
Example: 3

ID of the webhook.

Responses

Response samples

Content type
application/json
{
  • "status": "200 OK",
  • "webhook": {
    }
}

Modify a webhook

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

The unique ID stored in the Flix database.

name
string

The user set short description of the webhook.

Array of objects (Event)

The list of events which will trigger this webhook to be fired.

protocol
string
Enum: "TCP" "UDP"

The protocol which the Flix server should use to send the payload to the URL.

url
string

The address the Flix server should send the payload to, when the webhook is fired.

object (User)

A Flix user.

skip_tls
boolean

Whether to skip the TLS verification when sending a webhook event payload to a server with HTTPS. This should be set to true if using self-signed certificates.

retry_count
integer

The number of times Flix will attempt to POST a webhook event payload to a URL before it logs an error and stops.

email_on_failure
boolean

If set to true will email all admin users if the webhook fails to deliver the payload to the URL. If RetryCount is greater than 0, the email will only be sent after all retries have been attempted.

disabled
boolean

If set will mean the webhook will not be triggered from any event except pings.

Responses

Request samples

Content type
application/json
{
  • "id": 74,
  • "name": "My first webhook",
  • "events": [
    ],
  • "protocol": "TCP",
  • "user": {
    },
  • "skip_tls": true,
  • "retry_count": 3,
  • "email_on_failure": false,
  • "disabled": false
}

Response samples

Content type
application/json
{
  • "id": 74,
  • "name": "My first webhook",
  • "events": [
    ],
  • "protocol": "TCP",
  • "user": {
    },
  • "skip_tls": true,
  • "retry_count": 3,
  • "email_on_failure": false,
  • "disabled": false
}

Fetch all webhooks

Authorizations:
Signed auth

Responses

Response samples

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

Contact sheets

Create a contact sheet template

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

A unique ID for this contact sheet template.

name
string

A human-readable description of this contact sheet template.

created_date
string <date-time>

When this contact sheet template was created.

modified_date
string <date-time>

When this contact sheet template was modified.

object (User)

A Flix user.

Array of objects (Show)

The shows that this contact sheet template is assigned to.

orientation
integer
Enum: 0 1

The orientation of each page: landscape (0) or portrait (1).

object (PageSize)

The size of each page in portrait mode.

style
integer
Enum: 0 1 2

How to lay out the panels on each page: single panel (0), grid (1) or list (2).

columns
integer

The number of panel columns on each page in grid or list mode.

rows
integer

The number of panel rows on each page in grid mode.

panel_options
Array of strings (PanelOptionList)
Items Enum: "panel id" "panel number" "dialogue" "highlight tag" "new marker" "panel duration" "annotations" "date and time"

A list of display options for the panels.

show_header
boolean

Whether to show a header on each page.

show_comments
boolean

Whether to show the revision comment in the header.

show_watermark
boolean

Whether to show a watermark on each panel.

show_company
boolean

Whether to show the company logo on each panel.

show_cover
boolean

Whether to include a cover page.

cover_options
Array of strings (CoverOptionList)
Items Enum: "show name" "sequence name" "revision" "revision comment"

A list of options for the cover page.

cover_description
string

A string to print on the cover page.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Fetch a contact sheet template

Authorizations:
Signed auth
path Parameters
contactSheetId
required
integer
Example: 4

ID of the contact sheet template.

Responses

Response samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Update selected fields of a contact sheet template

Authorizations:
Signed auth
path Parameters
contactSheetId
required
integer
Example: 4

ID of the contact sheet template.

Request Body schema: application/json
id
integer

A unique ID for this contact sheet template.

name
string

A human-readable description of this contact sheet template.

created_date
string <date-time>

When this contact sheet template was created.

modified_date
string <date-time>

When this contact sheet template was modified.

object (User)

A Flix user.

Array of objects (Show)

The shows that this contact sheet template is assigned to.

orientation
integer
Enum: 0 1

The orientation of each page: landscape (0) or portrait (1).

object (PageSize)

The size of each page in portrait mode.

style
integer
Enum: 0 1 2

How to lay out the panels on each page: single panel (0), grid (1) or list (2).

columns
integer

The number of panel columns on each page in grid or list mode.

rows
integer

The number of panel rows on each page in grid mode.

panel_options
Array of strings (PanelOptionList)
Items Enum: "panel id" "panel number" "dialogue" "highlight tag" "new marker" "panel duration" "annotations" "date and time"

A list of display options for the panels.

show_header
boolean

Whether to show a header on each page.

show_comments
boolean

Whether to show the revision comment in the header.

show_watermark
boolean

Whether to show a watermark on each panel.

show_company
boolean

Whether to show the company logo on each panel.

show_cover
boolean

Whether to include a cover page.

cover_options
Array of strings (CoverOptionList)
Items Enum: "show name" "sequence name" "revision" "revision comment"

A list of options for the cover page.

cover_description
string

A string to print on the cover page.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Update all fields of a contact sheet template

Authorizations:
Signed auth
path Parameters
contactSheetId
required
integer
Example: 4

ID of the contact sheet template.

Request Body schema: application/json
id
integer

A unique ID for this contact sheet template.

name
string

A human-readable description of this contact sheet template.

created_date
string <date-time>

When this contact sheet template was created.

modified_date
string <date-time>

When this contact sheet template was modified.

object (User)

A Flix user.

Array of objects (Show)

The shows that this contact sheet template is assigned to.

orientation
integer
Enum: 0 1

The orientation of each page: landscape (0) or portrait (1).

object (PageSize)

The size of each page in portrait mode.

style
integer
Enum: 0 1 2

How to lay out the panels on each page: single panel (0), grid (1) or list (2).

columns
integer

The number of panel columns on each page in grid or list mode.

rows
integer

The number of panel rows on each page in grid mode.

panel_options
Array of strings (PanelOptionList)
Items Enum: "panel id" "panel number" "dialogue" "highlight tag" "new marker" "panel duration" "annotations" "date and time"

A list of display options for the panels.

show_header
boolean

Whether to show a header on each page.

show_comments
boolean

Whether to show the revision comment in the header.

show_watermark
boolean

Whether to show a watermark on each panel.

show_company
boolean

Whether to show the company logo on each panel.

show_cover
boolean

Whether to include a cover page.

cover_options
Array of strings (CoverOptionList)
Items Enum: "show name" "sequence name" "revision" "revision comment"

A list of options for the cover page.

cover_description
string

A string to print on the cover page.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "name": "4x4 grid",
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "shows": [
    ],
  • "orientation": 0,
  • "page_size": {
    },
  • "style": 1,
  • "columns": 4,
  • "rows": 4,
  • "panel_options": [
    ],
  • "show_header": true,
  • "show_comments": false,
  • "show_watermark": true,
  • "show_company": true,
  • "show_cover": true,
  • "cover_options": [
    ],
  • "cover_description": "Lorem ipsum dolor sit amet"
}

Delete a contact sheet template

Authorizations:
Signed auth

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch all contact sheets

Authorizations:
Signed auth

Responses

Response samples

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

Fetch contact sheets assigned to a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

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

Preview a contact sheet template

This endpoint will generate a sample contact sheet using the given template and mock data. The sample sheet will be returned as a PNG image.

Authorizations:
Signed auth
query Parameters
data
required
string
Example: data=eyJuYW1lIjogIlNpbmdsZSBTY3JlZW4gKExhbmRzY2FwZSkiLCAib3JpZW50YXRpb24iOiAwLCAicGFnZV9zaXplIjogeyJ3aWR0aCI6IDIxMCwgImhlaWdodCI6IDI3OX0sICJzdHlsZSI6IDAsICJjb2x1bW5zIjogMywgInJvd3MiOiAyLCAicGFuZWxfb3B0aW9ucyI6IFsicGFuZWwgaWQiLCAicGFuZWwgbnVtYmVyIiwgImRpYWxvZ3VlIiwgImhpZ2hsaWdodCB0YWciLCAibmV3IG1hcmtlciIsICJwYW5lbCBkdXJhdGlvbiIsICJhbm5vdGF0aW9ucyIsICJkYXRlIGFuZCB0aW1lIl0sICJzaG93X2hlYWRlciI6IHRydWUsICJzaG93X2NvbW1lbnRzIjogdHJ1ZSwgInNob3dfd2F0ZXJtYXJrIjogdHJ1ZSwgInNob3dfY29tcGFueSI6IHRydWUsICJzaG93X2NvdmVyIjogdHJ1ZSwgImNvdmVyX29wdGlvbnMiOiBbInNob3cgbmFtZSIsICJzZXF1ZW5jZSBuYW1lIiwgInJldmlzaW9uIiwgInJldmlzaW9uIGNvbW1lbnQiXSwgImNvdmVyX2Rlc2NyaXB0aW9uIjogIiJ9

A Base64-encoded contact sheet template in JSON format.

width
integer
Default: 500
Example: width=500

The width of the image to generate in pixels.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Fetch contact sheet template creation form

Authorizations:
Signed auth

Responses

Response samples

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

Extensions

Extensions

Flix supports the installation and management of third-party application extensions. Extensions packages can be imported to Flix by placing the compressed extension-package to the server-side directory thirdparty/extensions. The Flix Server will automatically import this file, and it will be accessible via the Flix Client extensions GUI.

The Flix Server supports the following extension formats:

  • .tar
  • .tar.gz
  • .zip

Fetch all extensions imported to the server

Authorizations:
Signed auth

Responses

Response samples

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

Shows

A show in Flix can hold either a list of sequences (for non-episodic shows), or a list of episodes that in turn contain sequences (for episodic shows).

Create a show

Authorizations:
Signed auth
Request Body schema: application/json
id
integer

A unique ID for this show.

aspect_ratio
required
number

The aspect ratio for this show.

created_date
string <date-time>

When this show was created.

description
string

A description of this show.

episodic
boolean

Whether this is an episodic show.

frame_rate
required
number

The framerate of this show in frames per second.

Array of objects (UserGroup)

A list of groups associated with this show.

hidden
boolean

Whether this show is hidden.

required
object (User)

A Flix user.

show_thumbnail_id
integer

The ID of the media object holding the thumbnail for this show.

title
required
string

The title of this show.

tracking_code
required
string [ 1 .. 10 ] characters

The tracking code of this show.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 3,
  • "aspect_ratio": 1.85,
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "A story about a traveller and her talking motorcycle.",
  • "episodic": true,
  • "frame_rate": 24,
  • "groups": [
    ],
  • "hidden": true,
  • "owner": {
    },
  • "show_thumbnail_id": 1001,
  • "title": "Kino's Journey",
  • "tracking_code": "kin",
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 3,
  • "aspect_ratio": 1.85,
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "A story about a traveller and her talking motorcycle.",
  • "episodic": true,
  • "frame_rate": 24,
  • "groups": [
    ],
  • "hidden": true,
  • "owner": {
    },
  • "show_thumbnail_id": 1001,
  • "title": "Kino's Journey",
  • "tracking_code": "kin",
  • "metadata": [
    ]
}

Fetch a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

Content type
application/json
{
  • "id": 3,
  • "aspect_ratio": 1.85,
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "A story about a traveller and her talking motorcycle.",
  • "episodic": true,
  • "frame_rate": 24,
  • "groups": [
    ],
  • "hidden": true,
  • "owner": {
    },
  • "show_thumbnail_id": 1001,
  • "title": "Kino's Journey",
  • "tracking_code": "kin",
  • "metadata": [
    ]
}

Update a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
id
integer

A unique ID for this show.

aspect_ratio
required
number

The aspect ratio for this show.

created_date
string <date-time>

When this show was created.

description
string

A description of this show.

episodic
boolean

Whether this is an episodic show.

frame_rate
required
number

The framerate of this show in frames per second.

Array of objects (UserGroup)

A list of groups associated with this show.

hidden
boolean

Whether this show is hidden.

required
object (User)

A Flix user.

show_thumbnail_id
integer

The ID of the media object holding the thumbnail for this show.

title
required
string

The title of this show.

tracking_code
required
string [ 1 .. 10 ] characters

The tracking code of this show.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 3,
  • "aspect_ratio": 1.85,
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "A story about a traveller and her talking motorcycle.",
  • "episodic": true,
  • "frame_rate": 24,
  • "groups": [
    ],
  • "hidden": true,
  • "owner": {
    },
  • "show_thumbnail_id": 1001,
  • "title": "Kino's Journey",
  • "tracking_code": "kin",
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 3,
  • "aspect_ratio": 1.85,
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "A story about a traveller and her talking motorcycle.",
  • "episodic": true,
  • "frame_rate": 24,
  • "groups": [
    ],
  • "hidden": true,
  • "owner": {
    },
  • "show_thumbnail_id": 1001,
  • "title": "Kino's Journey",
  • "tracking_code": "kin",
  • "metadata": [
    ]
}

Delete a show Deprecated

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "not allowed",
  • "status_code": 405
}

Fetch all unhidden shows

Fetches the first 500 unhidden shows. It is not currently possible to retrieve more than 500 shows.

Authorizations:
Signed auth
query Parameters
display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

permissions
string
Example: permissions=eyJuYW1lIjogImZsaXg6Oi91c2VycyIsICJtYXNrIjogNH0K

A Base64-encoded permission object in the JSON format described in Group filtering. If specified, only items where the logged in user has the specified permission will be returned.

Responses

Response samples

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

Fetch metadata for a show

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a show

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a show

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a show

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Episodes

Create an episode

Creates a new episode within a show. Only valid if the show is episodic. Will respond with the hydrated episode object.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
id
integer

A unique ID for the episode.

show_id
integer

The ID of the show this episode belongs to.

created_date
string <date-time>

When the episode was created.

episode_number
integer

The number of the episode within the show.

required
object (User)

A Flix user.

description
string

A description for the episode. Currently unused.

title
required
string

The title of the episode.

tracking_code
string

The tracking code of the episode.

Array of objects (Sequence)

The sequences contained in this episode.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 30,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "episode_number": 4,
  • "owner": {
    },
  • "description": "string",
  • "title": "Land of Adults (Natural Right)",
  • "tracking_code": "0400",
  • "sequences": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 30,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "episode_number": 4,
  • "owner": {
    },
  • "description": "string",
  • "title": "Land of Adults (Natural Right)",
  • "tracking_code": "0400",
  • "sequences": [
    ],
  • "metadata": [
    ]
}

Fetch an episode

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "id": 30,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "episode_number": 4,
  • "owner": {
    },
  • "description": "string",
  • "title": "Land of Adults (Natural Right)",
  • "tracking_code": "0400",
  • "sequences": [
    ],
  • "metadata": [
    ]
}

Update an episode

Updates an episode, replacing any existing values for the episode of the given ID.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

Request Body schema: application/json
id
integer

A unique ID for the episode.

show_id
integer

The ID of the show this episode belongs to.

created_date
string <date-time>

When the episode was created.

episode_number
integer

The number of the episode within the show.

required
object (User)

A Flix user.

description
string

A description for the episode. Currently unused.

title
required
string

The title of the episode.

tracking_code
string

The tracking code of the episode.

Array of objects (Sequence)

The sequences contained in this episode.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 30,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "episode_number": 4,
  • "owner": {
    },
  • "description": "string",
  • "title": "Land of Adults (Natural Right)",
  • "tracking_code": "0400",
  • "sequences": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 30,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "episode_number": 4,
  • "owner": {
    },
  • "description": "string",
  • "title": "Land of Adults (Natural Right)",
  • "tracking_code": "0400",
  • "sequences": [
    ],
  • "metadata": [
    ]
}

Fetch all episodes in a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all episodes in a show Deprecated

This endpoint is identical to /show/{showID}/episodes.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

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

Fetch metadata for an episode

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for an episode

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for an episode

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for an episode

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Non-episodic sequences

These endpoints concern managing sequences and sequence revisions within non-episodic shows.

Create a new sequence

Create a new sequence in the show. A show can contain a maximum of 500 sequences. This endpoint will return an error if a show already contains 500 sequences.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
id
integer

A unique ID of the sequence.

show_id
integer
episode_id
integer
created_date
string <date-time>

When the sequence was created.

required
object (User)

A Flix user.

revisions_count
integer

The number of revisions of this sequence.

panel_revision_count
integer

The number of unique panel IDs contained in this sequence.

deleted
boolean

Whether this sequence has been soft deleted. Currently unused.

description
required
string

A description of the sequence.

tracking_code
string

This sequence's tracking code.

hidden
boolean

Whether this sequence has been hidden.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Fetch a sequence

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Update a sequence

This endpoint will update the following properties:

  • Description
  • Metadata
  • Tracking code
Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
id
integer

A unique ID of the sequence.

show_id
integer
episode_id
integer
created_date
string <date-time>

When the sequence was created.

required
object (User)

A Flix user.

revisions_count
integer

The number of revisions of this sequence.

panel_revision_count
integer

The number of unique panel IDs contained in this sequence.

deleted
boolean

Whether this sequence has been soft deleted. Currently unused.

description
required
string

A description of the sequence.

tracking_code
string

This sequence's tracking code.

hidden
boolean

Whether this sequence has been hidden.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Delete a sequence

Soft delete a sequence. This sets the deleted property to true.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Fetch all sequences in a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

per_page
integer
Example: per_page=100

The number of items per page to return.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Create a new sequence revision

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
show_id
integer

The ID of the show this sequence revision belongs to.

sequence_id
integer

The ID of the sequence this sequence revision belongs to.

revision
integer

What revision within the sequence this is.

object (User)

A Flix user.

created_date
string <date-time>

When the revision was created.

Array of objects (RevisionedPanel)

A list of panels in this sequence revision.

comment
string

A comment describing this sequence revision.

published
boolean

Whether this sequence revision has been published to editorial.

imported
boolean

Whether this sequence revision has been imported from editorial.

task_id
string

The ID of the job chain that published this sequence revision.

Array of objects (Asset)

The assets holding the source files of this sequence revision, if any.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Fetch a sequence revision

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Update a sequence revision comment

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
show_id
integer

The ID of the show this sequence revision belongs to.

sequence_id
integer

The ID of the sequence this sequence revision belongs to.

revision
integer

What revision within the sequence this is.

object (User)

A Flix user.

created_date
string <date-time>

When the revision was created.

Array of objects (RevisionedPanel)

A list of panels in this sequence revision.

comment
string

A comment describing this sequence revision.

published
boolean

Whether this sequence revision has been published to editorial.

imported
boolean

Whether this sequence revision has been imported from editorial.

task_id
string

The ID of the job chain that published this sequence revision.

Array of objects (Asset)

The assets holding the source files of this sequence revision, if any.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Fetch all revisions of a sequence

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

partial
boolean
Default: false
Enum: true false
Example: partial=true

Whether to return a sparse object.

Responses

Response samples

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

Fetch all latest revisions in a show.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Responses

Response samples

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

Fetch metadata for a sequence

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a sequence

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a sequence

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a sequence

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch metadata for a sequence revision

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a sequence revision

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a sequence revision

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a sequence revision

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Episodic sequences

These endpoints concern managing sequences and sequence revisions within episodic shows.

Create a new sequence

Create a new sequence in the show. A show can contain a maximum of 500 sequences. This endpoint will return an error if a show already contains 500 sequences.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

Request Body schema: application/json
id
integer

A unique ID of the sequence.

show_id
integer
episode_id
integer
created_date
string <date-time>

When the sequence was created.

required
object (User)

A Flix user.

revisions_count
integer

The number of revisions of this sequence.

panel_revision_count
integer

The number of unique panel IDs contained in this sequence.

deleted
boolean

Whether this sequence has been soft deleted. Currently unused.

description
required
string

A description of the sequence.

tracking_code
string

This sequence's tracking code.

hidden
boolean

Whether this sequence has been hidden.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Fetch a sequence

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Update a sequence

This endpoint will update the following properties:

  • Description
  • Metadata
  • Tracking code
Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
id
integer

A unique ID of the sequence.

show_id
integer
episode_id
integer
created_date
string <date-time>

When the sequence was created.

required
object (User)

A Flix user.

revisions_count
integer

The number of revisions of this sequence.

panel_revision_count
integer

The number of unique panel IDs contained in this sequence.

deleted
boolean

Whether this sequence has been soft deleted. Currently unused.

description
required
string

A description of the sequence.

tracking_code
string

This sequence's tracking code.

hidden
boolean

Whether this sequence has been hidden.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 20,
  • "show_id": 4,
  • "episode_id": 7,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revisions_count": 6,
  • "panel_revision_count": 777,
  • "deleted": true,
  • "description": "Scene 1",
  • "tracking_code": "0100",
  • "hidden": true,
  • "metadata": [
    ]
}

Delete a sequence

Soft delete a sequence. This sets the deleted property to true.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Fetch all sequences in a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

per_page
integer
Example: per_page=100

The number of items per page to return.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all sequences in an episode

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

per_page
integer
Example: per_page=100

The number of items per page to return.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Create a new sequence revision

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
show_id
integer

The ID of the show this sequence revision belongs to.

sequence_id
integer

The ID of the sequence this sequence revision belongs to.

revision
integer

What revision within the sequence this is.

object (User)

A Flix user.

created_date
string <date-time>

When the revision was created.

Array of objects (RevisionedPanel)

A list of panels in this sequence revision.

comment
string

A comment describing this sequence revision.

published
boolean

Whether this sequence revision has been published to editorial.

imported
boolean

Whether this sequence revision has been imported from editorial.

task_id
string

The ID of the job chain that published this sequence revision.

Array of objects (Asset)

The assets holding the source files of this sequence revision, if any.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Fetch a sequence revision

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Update a revision comment

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
show_id
integer

The ID of the show this sequence revision belongs to.

sequence_id
integer

The ID of the sequence this sequence revision belongs to.

revision
integer

What revision within the sequence this is.

object (User)

A Flix user.

created_date
string <date-time>

When the revision was created.

Array of objects (RevisionedPanel)

A list of panels in this sequence revision.

comment
string

A comment describing this sequence revision.

published
boolean

Whether this sequence revision has been published to editorial.

imported
boolean

Whether this sequence revision has been imported from editorial.

task_id
string

The ID of the job chain that published this sequence revision.

Array of objects (Asset)

The assets holding the source files of this sequence revision, if any.

Array of objects (FieldList)

A list of metadata fields for this object.

Responses

Request samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Response samples

Content type
application/json
{
  • "show_id": 3,
  • "sequence_id": 5,
  • "revision": 8,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "revisioned_panels": [
    ],
  • "comment": "Final version",
  • "published": true,
  • "imported": true,
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "source_files": [
    ],
  • "metadata": [
    ]
}

Fetch all revisions of a sequence

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

partial
boolean
Default: false
Enum: true false
Example: partial=true

Whether to return a sparse object.

Responses

Response samples

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

Fetch all latest revisions in a show.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

Responses

Response samples

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

Fetch metadata for a sequence

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a sequence

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a sequence

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Replace metadata for a sequence

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch metadata for a sequence revision

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a sequence revision

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a sequence revision

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a sequence revision

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Panels and panel revisions

Within Flix, a panel is a wrapper for a revisionable image or animated clip.

Each panel has a non-zero number of panel revisions. Each panel revision has exactly one asset associated with it. Note, however, that multiple panel revisions can be associated with the same asset.

Panel IDs are not intended to be sequential; rather, they are unique references within a given sequence. On the other hand, the revision numbers of the revisions of a panel will be sequential.

A panel can only exist once within a sequence revision. If a panel revision is brought into a sequence revision via the library, for example, and the panel already exists within that sequence revision, a "duplicate" will be created. Panel revisions have a duplicate property allowing the user to track where a panel revision has been duplicated from.

Create a new panel

Creates a single new panel, and a panel revision within it, and saves it to the database. If the asset ID on the panel is either not set, or set to 0, Flix will assign a blank asset to this panel. Responds with the first revision of the panel.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
sequence_id
integer

The ID of the sequence this panel revision belongs to.

show_id
integer

The ID of the show this panel revision belongs to.

panel_id
integer

The ID of the panel that this object is a revision of.

revision_number
integer

What revision of the panel this is.

created_date
string <date-time>

When this panel revision was created.

object (Asset)

The structure which we use for storing data for Flix assets.

object (User)

A Flix user.

published
integer

What sequence revision this panel revision was published to editorial as part of, if any.

is_ref
boolean

Whether this is a ref panel.

object (PanelComment)

A comment which is associated with a panel.

origin
string
Enum: "Flix" "Storyboard Pro" "Photoshop" "Premiere" "Avid" "Manual Import"

The original source of the panel revision.

object (OriginAvidValues)

Holds Avid-specific panel revision origin information.

object (OriginSBPValues)

Holds Storyboard Pro-specific panel revision origin information.

object (OriginFCPXMLValues)

Holds FCPXML-specific panel revision origin information.

Array of objects (List)

The camera move keyframes on this panel revisions.

layer_transform
boolean

Whether the panel revision had a layer transform applied to it in Storyboard Pro.

object (duplicateRef)

An optional structure, filled if this panel revision has been duplicated from another.

Array of objects (PanelRevision)

A list of panel revisions that this panel is composed of, if this is a ref panel.

object (Panel)

Represents a collection of panel revisions associated with a certain show and sequence.

Array of objects (FieldList)

A list of metadata fields for this object.

sequence_revision
integer

In the sequence revision this panel revision was fetched from. Only set if the panel revision was fetched from a specific sequence revision.

duration
integer

The duration of this panel revision in a given sequence revision. If the panel revision was not fetched from a specific sequence revision, this will always be 12.

trim_in_frame
integer

The trim in of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

trim_out_frame
integer

TrimIn is the trim out of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

Responses

Request samples

Content type
application/json
{
  • "sequence_id": 3,
  • "show_id": 3,
  • "panel_id": 5,
  • "revision_number": 1,
  • "created_date": "2019-08-24T14:15:22Z",
  • "asset": {
    },
  • "owner": {
    },
  • "published": 0,
  • "is_ref": true,
  • "latest_open_comment": {
    },
  • "origin": "Flix",
  • "origin_avid": {
    },
  • "origin_sbp": {
    },
  • "origin_fcpxml": {
    },
  • "keyframes": [
    ],
  • "layer_transform": true,
  • "duplicate": {
    },
  • "related_panels": [
    ],
  • "panel": {
    },
  • "metadata": [
    ],
  • "sequence_revision": 0,
  • "duration": 12,
  • "trim_in_frame": 3,
  • "trim_out_frame": 15
}

Response samples

Content type
application/json
{
  • "sequence_id": 3,
  • "show_id": 3,
  • "panel_id": 5,
  • "revision_number": 1,
  • "created_date": "2019-08-24T14:15:22Z",
  • "asset": {
    },
  • "owner": {
    },
  • "published": 0,
  • "is_ref": true,
  • "latest_open_comment": {
    },
  • "origin": "Flix",
  • "origin_avid": {
    },
  • "origin_sbp": {
    },
  • "origin_fcpxml": {
    },
  • "keyframes": [
    ],
  • "layer_transform": true,
  • "duplicate": {
    },
  • "related_panels": [
    ],
  • "panel": {
    },
  • "metadata": [
    ],
  • "sequence_revision": 0,
  • "duration": 12,
  • "trim_in_frame": 3,
  • "trim_out_frame": 15
}

Fetch a panel

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

Responses

Response samples

Content type
application/json
{
  • "id": 5,
  • "sequence_id": 60,
  • "show_id": 5,
  • "created_date": "2019-08-24T14:15:22Z",
  • "revision_count": 7,
  • "owner": {
    },
  • "deleted": true,
  • "metadata": [
    ]
}

Create a new revision of a panel

Creates a new panel revision for a panel. The panel ID should already exist. If the asset ID on the panel is either not set, or set to 0, Flix will assign a blank asset to this panel revision.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

Request Body schema: application/json
sequence_id
integer

The ID of the sequence this panel revision belongs to.

show_id
integer

The ID of the show this panel revision belongs to.

panel_id
integer

The ID of the panel that this object is a revision of.

revision_number
integer

What revision of the panel this is.

created_date
string <date-time>

When this panel revision was created.

object (Asset)

The structure which we use for storing data for Flix assets.

object (User)

A Flix user.

published
integer

What sequence revision this panel revision was published to editorial as part of, if any.

is_ref
boolean

Whether this is a ref panel.

object (PanelComment)

A comment which is associated with a panel.

origin
string
Enum: "Flix" "Storyboard Pro" "Photoshop" "Premiere" "Avid" "Manual Import"

The original source of the panel revision.

object (OriginAvidValues)

Holds Avid-specific panel revision origin information.

object (OriginSBPValues)

Holds Storyboard Pro-specific panel revision origin information.

object (OriginFCPXMLValues)

Holds FCPXML-specific panel revision origin information.

Array of objects (List)

The camera move keyframes on this panel revisions.

layer_transform
boolean

Whether the panel revision had a layer transform applied to it in Storyboard Pro.

object (duplicateRef)

An optional structure, filled if this panel revision has been duplicated from another.

Array of objects (PanelRevision)

A list of panel revisions that this panel is composed of, if this is a ref panel.

object (Panel)

Represents a collection of panel revisions associated with a certain show and sequence.

Array of objects (FieldList)

A list of metadata fields for this object.

sequence_revision
integer

In the sequence revision this panel revision was fetched from. Only set if the panel revision was fetched from a specific sequence revision.

duration
integer

The duration of this panel revision in a given sequence revision. If the panel revision was not fetched from a specific sequence revision, this will always be 12.

trim_in_frame
integer

The trim in of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

trim_out_frame
integer

TrimIn is the trim out of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

Responses

Request samples

Content type
application/json
{
  • "sequence_id": 3,
  • "show_id": 3,
  • "panel_id": 5,
  • "revision_number": 1,
  • "created_date": "2019-08-24T14:15:22Z",
  • "asset": {
    },
  • "owner": {
    },
  • "published": 0,
  • "is_ref": true,
  • "latest_open_comment": {
    },
  • "origin": "Flix",
  • "origin_avid": {
    },
  • "origin_sbp": {
    },
  • "origin_fcpxml": {
    },
  • "keyframes": [
    ],
  • "layer_transform": true,
  • "duplicate": {
    },
  • "related_panels": [
    ],
  • "panel": {
    },
  • "metadata": [
    ],
  • "sequence_revision": 0,
  • "duration": 12,
  • "trim_in_frame": 3,
  • "trim_out_frame": 15
}

Response samples

Content type
application/json
{
  • "sequence_id": 3,
  • "show_id": 3,
  • "panel_id": 5,
  • "revision_number": 1,
  • "created_date": "2019-08-24T14:15:22Z",
  • "asset": {
    },
  • "owner": {
    },
  • "published": 0,
  • "is_ref": true,
  • "latest_open_comment": {
    },
  • "origin": "Flix",
  • "origin_avid": {
    },
  • "origin_sbp": {
    },
  • "origin_fcpxml": {
    },
  • "keyframes": [
    ],
  • "layer_transform": true,
  • "duplicate": {
    },
  • "related_panels": [
    ],
  • "panel": {
    },
  • "metadata": [
    ],
  • "sequence_revision": 0,
  • "duration": 12,
  • "trim_in_frame": 3,
  • "trim_out_frame": 15
}

Fetch a panel revision

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

Content type
application/json
{
  • "sequence_id": 3,
  • "show_id": 3,
  • "panel_id": 5,
  • "revision_number": 1,
  • "created_date": "2019-08-24T14:15:22Z",
  • "asset": {
    },
  • "owner": {
    },
  • "published": 0,
  • "is_ref": true,
  • "latest_open_comment": {
    },
  • "origin": "Flix",
  • "origin_avid": {
    },
  • "origin_sbp": {
    },
  • "origin_fcpxml": {
    },
  • "keyframes": [
    ],
  • "layer_transform": true,
  • "duplicate": {
    },
  • "related_panels": [
    ],
  • "panel": {
    },
  • "metadata": [
    ],
  • "sequence_revision": 0,
  • "duration": 12,
  • "trim_in_frame": 3,
  • "trim_out_frame": 15
}

Batch create panels

Creates multiple new panels in one request. A new panel ID and panel revision will be created for each panel. If the asset ID on any panel is either not set, or set to 0, Flix will assign a blank asset to this panel.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
Array
sequence_id
integer

The ID of the sequence this panel revision belongs to.

show_id
integer

The ID of the show this panel revision belongs to.

panel_id
integer

The ID of the panel that this object is a revision of.

revision_number
integer

What revision of the panel this is.

created_date
string <date-time>

When this panel revision was created.

object (Asset)

The structure which we use for storing data for Flix assets.

object (User)

A Flix user.

published
integer

What sequence revision this panel revision was published to editorial as part of, if any.

is_ref
boolean

Whether this is a ref panel.

object (PanelComment)

A comment which is associated with a panel.

origin
string
Enum: "Flix" "Storyboard Pro" "Photoshop" "Premiere" "Avid" "Manual Import"

The original source of the panel revision.

object (OriginAvidValues)

Holds Avid-specific panel revision origin information.

object (OriginSBPValues)

Holds Storyboard Pro-specific panel revision origin information.

object (OriginFCPXMLValues)

Holds FCPXML-specific panel revision origin information.

Array of objects (List)

The camera move keyframes on this panel revisions.

layer_transform
boolean

Whether the panel revision had a layer transform applied to it in Storyboard Pro.

object (duplicateRef)

An optional structure, filled if this panel revision has been duplicated from another.

Array of objects (PanelRevision)

A list of panel revisions that this panel is composed of, if this is a ref panel.

object (Panel)

Represents a collection of panel revisions associated with a certain show and sequence.

Array of objects (FieldList)

A list of metadata fields for this object.

sequence_revision
integer

In the sequence revision this panel revision was fetched from. Only set if the panel revision was fetched from a specific sequence revision.

duration
integer

The duration of this panel revision in a given sequence revision. If the panel revision was not fetched from a specific sequence revision, this will always be 12.

trim_in_frame
integer

The trim in of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

trim_out_frame
integer

TrimIn is the trim out of this panel revision in a given sequence revision if this is an animated panel. If the panel revision was not fetched from a specific sequence revision, this will always be empty.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

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

Fetch all panel revisions in a sequence

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

query Parameters
page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

per_page
integer
Example: per_page=100

The number of items per page to return.

showAll
boolean
Enum: true false
Example: showAll=true

Whether to show all items.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all panel revisions in a sequence revision (non-episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all panel revisions in a sequence revision (episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all panel revisions in an episode

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

query Parameters
page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

showAll
boolean
Enum: true false
Example: showAll=true

Whether to show all items.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch all panels in a show

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Fetch panel revisions from asset MD5 checksums

Returns all panel revisions with assets matching the given MD5 checksums. The returned object will be a mapping from checksums to a list of matching panel revisions. If any checksum contains -s, the server will remove them before searching the database. If the checksum is requested with hyphens, it will be returned with hyphens. If there are no panels associated with a given checksum, that checksum entry will be mapped to an empty array in the response.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
checksums
Array of strings

The list of checksums to search for, either an MD5 hash of the panel artwork, or a Storyboard Pro clip ID.

checksum_type
required
string
Enum: "ContentHash" "SBPClipID"

The type of checksum to use.

Responses

Request samples

Content type
application/json
{
  • "checksums": [
    ],
  • "checksum_type": "ContentHash"
}

Response samples

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

Fetch panel revisions containing a specific asset

Returns all panel revisions containing the asset with the given ID. If no panel revisions are found, an empty array will be returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

assetId
required
integer
Example: 42

ID of the asset.

query Parameters
metadata
boolean
Default: true
Enum: true false

Whether to include metadata.

Responses

Response samples

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

Version up panel revisions

Create new revisions of the given panels. The new revisions will be copied from the panel revisions specified in the request body, with the exception of the published field which will be set to false.

The revision numbers of the new panel revisions will follow from the highest revision number for each respective panel, which will not necessarily be the revision numbers specified in the request. For instance, if a panel has five revisions, and this endpoint is called for revision two, the new panel revision will have a revision number of six, but with its data copied from revision two.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

Request Body schema: application/json
Array of objects (PanelIDRev)

A list of panel IDs and revisions identifying what panels to version up.

Responses

Request samples

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

Response samples

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

Fetch metadata for a panel

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a panel

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a panel

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a panel

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Fetch metadata for a panel revision

If a metadata field name is provided, this endpoint returns a single field. Otherwise, a list of all metadata for the object is returned.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
Example
[ ]

Partially update metadata for a panel revision

Updates the metadata for the object while leaving fields not included in the request unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Replace metadata for a panel revision

When providing a list of metadata, updates the metadata for the object, removing any fields not specified. When operating on a single field, the field will be replaced or created as needed, while leaving other metadata fields unchanged.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Request Body schema: application/json
One of
Array
name
string

The user defined indexable name of the field. Each metadata field value must have a name unique to the entity. For example, a Sequence cannot have more than one metadata field named 'scene'

boolean or string or number or integer or any or string or Array of strings

The value of the metadata field. Value can be set to null to represent an unset value.

value_type
string
Enum: "bool" "datetime" "float" "int" "object" "string" "stringarray"

The name of the type this Field's Value takes.

created_date
string <date-time>

Set automatically at the metadata fields creation; it is immutable.

modified_date
string <date-time>

Set automatically every time the metadata field is updated in the database; it is immutable.

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Delete metadata for a panel revision

Deletes a single field from the object's metadata list.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

query Parameters
name
required
string
Example: name=comment

The name of a metadata field. If provided, the endpoint will return or modify a single field rather than a list of metadata fields.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "forbidden",
  • "status_code": 403
}

Comments

Fetch all comments on a panel

Returns all comments associated with the given panel ID.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

query Parameters
limit
integer
Example: limit=50

The maximum count of items.

order_by
string
Example: order_by=closed_at

The field to order the return values by.

order
string
Default: "asc"
Enum: "asc" "desc"
Example: order=asc

Order the return values ascending or descending.

Responses

Response samples

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

Resolve a comment on a panel

This endpoint will update the fields related to resolving comments. Fields not specified will not be updated.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

commentId
required
integer
Example: 10

ID of the comment.

Request Body schema: application/json
closer_user_id
integer

The ID of the user that closed the comment.

closed_date
string <date-time>

When the comment was closed.

closed
boolean

Whether the comment has been closed.

Responses

Request samples

Content type
application/json
{
  • "closer_user_id": 10,
  • "closed_date": "2019-08-24T14:15:22Z",
  • "closed": true
}

Response samples

Content type
application/json
{
  • "body": "Can we make this a bit shorter?",
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "id": 22,
  • "owner": {
    },
  • "closer_user_id": 10,
  • "closed_date": "2019-08-24T14:15:22Z",
  • "closed": true,
  • "panel_id": 5,
  • "revision_id": 8
}

Create a new comment on a panel

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
body
required
string

The text of the comment.

created_date
string <date-time>

When the comment was created.

deleted
boolean

Whether the comment has been deleted.

id
integer

A unique ID for this comment.

object (User)

A Flix user.

closer_user_id
integer

The ID of the user that closed the comment.

closed_date
string <date-time>

When the comment was closed.

closed
boolean

Whether the comment has been closed.

panel_id
required
integer

The ID of the panel this comment is associated with.

revision_id
required
integer

The panel revision this comment is associated with.

Responses

Request samples

Content type
application/json
{
  • "body": "Can we make this a bit shorter?",
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "id": 22,
  • "owner": {
    },
  • "closer_user_id": 10,
  • "closed_date": "2019-08-24T14:15:22Z",
  • "closed": true,
  • "panel_id": 5,
  • "revision_id": 8
}

Response samples

Content type
application/json
{
  • "body": "Can we make this a bit shorter?",
  • "created_date": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "id": 22,
  • "owner": {
    },
  • "closer_user_id": 10,
  • "closed_date": "2019-08-24T14:15:22Z",
  • "closed": true,
  • "panel_id": 5,
  • "revision_id": 8
}

Dialogue

Create a new dialogue entry

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
dialogue_id
integer

The ID of the dialogue.

text
required
string

The text of the dialogue.

created_date
string <date-time>

When the dialogue was created.

required
object (User)

A Flix user.

revision_id
integer

An ID used to link this dialogue to a specific sequence revision.

panel_id
integer

The panel this dialogue is associated with.

Responses

Request samples

Content type
application/json
{
  • "dialogue_id": 22,
  • "text": "Welcome, traveler!",
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revision_id": 13,
  • "panel_id": 5
}

Response samples

Content type
application/json
{
  • "dialogue_id": 22,
  • "text": "Welcome, traveler!",
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner": {
    },
  • "revision_id": 13,
  • "panel_id": 5
}

Fetch all dialogue entries for a panel (episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

Responses

Response samples

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

Fetch all dialogue entries for a panel (non-episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

panelId
required
integer
Example: 4

ID of the panel.

Responses

Response samples

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

Fetch dialogue from all panels in a sequence revision (non-episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

Fetch dialogue from all panels in a sequence revision (episodic)

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

File storage abstraction

Flix provides a number of abstractions around file storage to make it easier to work with collections of files.

Media object

A media object is a wrapper for a file on disk. Each media object has a ref string value, which indicates the type of file the media object represents. Examples of refs are:

  • artwork
  • thumbnail
  • source_file

A media object cannot exist on its own, and must have an asset it belongs to.

id
integer

A unique ID for this media object.

asset_id
integer

The ID of the asset this media object belongs to.

name
string

The name of the file described by this media object. Only set if the status is "uploaded".

content_type
string

The content type of the file described by this media object. Only set if the status is "uploaded".

content_length
integer

The size in bytes of the file described by this media object. Only set if the status is "uploaded".

Array of objects (HashList)

The list of hash values used to describe the media object for the purpose of reusing.

created_date
string <date-time>

When this media object was created.

status
integer
Enum: 0 1 2

The status of this media object, either initialised (0), uploaded (1), or errored (2).

object (User)

A Flix user.

asset_type
string

A string specifying what type of media object this is.

object (Rectangle)

The dimensions of the underlying image. This will be omitted if the file is not an image.

{
  • "id": 3333,
  • "asset_id": 400,
  • "name": "opening.psd",
  • "content_type": "image/vnd.adobe.photoshop",
  • "content_length": 8506541,
  • "content_hashes": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "status": 1,
  • "owner": {
    },
  • "asset_type": "artwork",
  • "dimensions": {
    }
}

Asset

An asset is a collection of zero or more media objects. A typical asset—for a panel revision, for example—would contain one artwork media object, which is the original art imported by the artist; a PSD file would be common. It might also contain thumbnail, scaled and fullres media objects which are the result of a transcode request—one of each for still panels, or multiple for animated panels. If a panel revision has been published to an AAF, its asset will also contain published and dnxhd media object refs.

asset_id
integer

The ID of the asset.

show_id
integer

The show the asset is associated with.

created_date
string <date-time>

When the asset was created.

object (User)

A Flix user.

object

Maps ref strings to a list of media objects.

{
  • "asset_id": 55,
  • "show_id": 3,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner_id": {
    },
  • "media_objects": {
    }
}

Files

File content for media objects can be fetched directly from the API.

Uploading files to a media object is current only supported via the Flix Transfer Utility application which is distributed with the Flix Client. As such a typical panel image upload process for Flix would look like:

  1. API: create asset
  2. API: create media object - artwork
  3. Transfer Utility: use the asset and media object IDs from the API to upload the file
  4. API: create a transcode request for the asset

Assets and media objects

Create a non-zero number of assets

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
asset_count
required
integer

The number of assets to create.

Responses

Request samples

Content type
application/json
{
  • "asset_count": 5
}

Response samples

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

Fetch an asset

Authorizations:
Signed auth
path Parameters
assetId
required
integer
Example: 42

ID of the asset.

Responses

Response samples

Content type
application/json
{
  • "asset_id": 55,
  • "show_id": 3,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner_id": {
    },
  • "media_objects": {
    }
}

Fetch all assets in a sequence revision (non-episodic)

Returns all assets which are associated with one or more panel revisions within the given sequence revision. Any assets which have uploaded artwork but no thumbnails will be asynchronously transcoded.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

Fetch all assets in a sequence revision (episodic)

Returns all assets which are associated with one or more panel revisions within the given sequence revision. Any assets which have uploaded artwork but no thumbnails will be asynchronously transcoded.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

Create media objects within multiple assets

Creates media objects of a particular ref on multiple assets. New media objects will be mostly empty, with a status of initialised. After creating assets, this endpoint can be used to create media objects within the assets which are ready to have files uploaded to them.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

ref
required
string[a-z_]+
Examples:
  • artwork - The original uploaded artwork.
  • thumbnail - A thumbnail transcoded from the artwork.

Ref string of the media object(s).

Request Body schema: application/json
asset_ids
required
Array of integers

A list of asset IDs.

Responses

Request samples

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

Response samples

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

Fetch a media object

Authorizations:
Signed auth
path Parameters
mediaObjectId
required
integer
Example: 1337

ID of the media object.

Responses

Response samples

Content type
application/json
{
  • "id": 3333,
  • "asset_id": 400,
  • "name": "opening.psd",
  • "content_type": "image/vnd.adobe.photoshop",
  • "content_length": 8506541,
  • "content_hashes": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "status": 1,
  • "owner": {
    },
  • "asset_type": "artwork",
  • "dimensions": {
    }
}

Fetch a media object's file contents

Authorizations:
Signed auth(keyidexpiretimesignature)
path Parameters
mediaObjectId
required
integer
Example: 1337

ID of the media object.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Render thumbnails for multiple assets

Transcodes the artwork ref media object into thumbnails, scaled and fullres media objects. This is done in batches which are distributed across all servers. Requesting a transcode on an asset which has already been transcoded will perform no action and return no error.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
asset_ids
required
Array of integers

A list of asset IDs.

transcode_from
string
Enum: "artwork" "source_file"

The asset type to transcode from. If not specified, source_media will be used if present, otherwise artwork.

transcode_to
Array of strings

What asset types to transcode to. If not specified, thumbnail, scaled and fullres asset types will be generated.

Responses

Request samples

Content type
application/json
{
  • "asset_ids": [
    ],
  • "transcode_from": "source_file",
  • "transcode_to": [
    ]
}

Response samples

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

Render thumbnails for sequence revision (non-episodic)

Transcodes the artwork of all panels in the specified sequence revision into thumbnails, scaled and fullres media objects. This is done in batches which are distributed across all servers. Requesting a transcode on an asset which has already been transcoded will perform no action and return no error.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

Render thumbnails for sequence revision (episodic)

Transcodes the artwork of all panels in the specified sequence revision into thumbnails, scaled and fullres media objects. This is done in batches which are distributed across all servers. Requesting a transcode on an asset which has already been transcoded will perform no action and return no error.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Responses

Response samples

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

Add a source file to one or more assets

Creates a source file from the given source file asset and associates it with the given child assets.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
entity_id
integer

The ID of the entity that holds the source file information.

show_id
integer

The ID of the show this source file belongs to.

required
object (Asset)

The structure which we use for storing data for Flix assets.

object (Asset)

The structure which we use for storing data for Flix assets.

object (User)

A Flix user.

created_date
string <date-time>

When this source file was created.

origin
required
string

The application from which this source file originates.

source_file_type
required
string

The type of this source file.

extension_client_uid
string

The UID of the extension that sent this source file, if any.

extension_version
string

An optional version for the extension that sent this source file.

Array of objects (Asset)

The assets that were created from this source file.

Responses

Request samples

Content type
application/json
{
  • "entity_id": 91,
  • "show_id": 5,
  • "source_file_asset": {
    },
  • "preview_asset": {
    },
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "origin": "Maya",
  • "source_file_type": "3D",
  • "extension_client_uid": "c9edda37-2672-4cab-9b83-ede3afcf05f5",
  • "extension_version": "1.0.0",
  • "child_assets": [
    ]
}

Response samples

Content type
application/json
{
  • "entity_id": 91,
  • "show_id": 5,
  • "source_file_asset": {
    },
  • "preview_asset": {
    },
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "origin": "Maya",
  • "source_file_type": "3D",
  • "extension_client_uid": "c9edda37-2672-4cab-9b83-ede3afcf05f5",
  • "extension_version": "1.0.0",
  • "child_assets": [
    ]
}

Fetch a source file

Retrieves the source file with the given entity ID.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

entityID
required
integer
Example: 91

ID of the entity.

Responses

Response samples

Content type
application/json
{
  • "entity_id": 91,
  • "show_id": 5,
  • "source_file_asset": {
    },
  • "preview_asset": {
    },
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "origin": "Maya",
  • "source_file_type": "3D",
  • "extension_client_uid": "c9edda37-2672-4cab-9b83-ede3afcf05f5",
  • "extension_version": "1.0.0",
  • "child_assets": [
    ]
}

Filter all source files

Returns all source files matching the given filters within the shows the user has access to.

Authorizations:
Signed auth
query Parameters
shows
integer
Example: shows=6,21

A comma-separated list of show IDs to filter by.

sequences
integer
Example: sequences=8,10

A comma-separated list of sequence IDs to filter by.

child_assets
integer
Example: child_assets=153,5,6346

The IDs of the assets whose source files to fetch.

users
integer
Example: users=1,3,9

A comma-separated list of owner user IDs to filter by.

origin
string
Example: origin=Photoshop

The origin to filter items by.

startDate
string <date>
Example: startDate=2003-01-20

Restricts the results to items created on or after the given date.

endDate
string <date>
Example: endDate=2022-06-30

Restricts the results to items created prior to the given date.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

must_have_preview
boolean
Default: true
Enum: true false

Whether to only return source files that have preview assets.

per_page
integer
Example: per_page=100

The number of items per page to return.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

order_by
string
Example: order_by=closed_at

The field to order the return values by.

order
string
Default: "asc"
Enum: "asc" "desc"
Example: order=asc

Order the return values ascending or descending.

object
Example: after[id]=10

Limits the results to items that follow the one with the given IDs.

object
Example: before[id]=23

Limits the results to items that precede the one with the given IDs.

Responses

Response samples

Content type
application/json
{
  • "source_files": [
    ],
  • "navigation": {
    }
}

Filter source files in a show

Returns all source files within the given show matching the given filters.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
sequences
integer
Example: sequences=8,10

A comma-separated list of sequence IDs to filter by.

child_assets
integer
Example: child_assets=153,5,6346

The IDs of the assets whose source files to fetch.

users
integer
Example: users=1,3,9

A comma-separated list of owner user IDs to filter by.

origin
string
Example: origin=Photoshop

The origin to filter items by.

startDate
string <date>
Example: startDate=2003-01-20

Restricts the results to items created on or after the given date.

endDate
string <date>
Example: endDate=2022-06-30

Restricts the results to items created prior to the given date.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

must_have_preview
boolean
Default: true
Enum: true false

Whether to only return source files that have preview assets.

per_page
integer
Example: per_page=100

The number of items per page to return.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

order_by
string
Example: order_by=closed_at

The field to order the return values by.

order
string
Default: "asc"
Enum: "asc" "desc"
Example: order=asc

Order the return values ascending or descending.

object
Example: after[id]=10

Limits the results to items that follow the one with the given IDs.

object
Example: before[id]=23

Limits the results to items that precede the one with the given IDs.

Responses

Response samples

Content type
application/json
{
  • "source_files": [
    ],
  • "navigation": {
    }
}

Filter source files for an asset

Returns all source files associated with the given asset matching the given filters.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

assetId
required
integer
Example: 42

ID of the asset.

query Parameters
sequences
integer
Example: sequences=8,10

A comma-separated list of sequence IDs to filter by.

users
integer
Example: users=1,3,9

A comma-separated list of owner user IDs to filter by.

origin
string
Example: origin=Photoshop

The origin to filter items by.

startDate
string <date>
Example: startDate=2003-01-20

Restricts the results to items created on or after the given date.

endDate
string <date>
Example: endDate=2022-06-30

Restricts the results to items created prior to the given date.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

must_have_preview
boolean
Default: true
Enum: true false

Whether to only return source files that have preview assets.

per_page
integer
Example: per_page=100

The number of items per page to return.

page
integer
Example: page=3

What page to return. When possible, avoid in favour of after/before.

order_by
string
Example: order_by=closed_at

The field to order the return values by.

order
string
Default: "asc"
Enum: "asc" "desc"
Example: order=asc

Order the return values ascending or descending.

object
Example: after[id]=10

Limits the results to items that follow the one with the given IDs.

object
Example: before[id]=23

Limits the results to items that precede the one with the given IDs.

Responses

Response samples

Content type
application/json
{
  • "source_files": [
    ],
  • "navigation": {
    }
}

Fetch an asset from an MD5 hash

Returns an arbitrary asset containing a media object whose file hash matches the given MD5 checksum.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
checksum
required
string
Example: checksum=37f4b035e9da8a421a7853d696541152

MD5 checksum of the asset's media object.

Responses

Response samples

Content type
application/json
{
  • "asset_id": 55,
  • "show_id": 3,
  • "created_date": "2019-08-24T14:15:22Z",
  • "owner_id": {
    },
  • "media_objects": {
    }
}

Update hash values on a media object

Patches the hash values on the media object. Any fields on the media object in the request body will be ignored. This endpoint will also update the owner of the media object to the logged in user.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

mediaObjectId
required
integer
Example: 1337

ID of the media object.

Request Body schema: application/json
id
integer

A unique ID for this media object.

asset_id
integer

The ID of the asset this media object belongs to.

name
string

The name of the file described by this media object. Only set if the status is "uploaded".

content_type
string

The content type of the file described by this media object. Only set if the status is "uploaded".

content_length
integer

The size in bytes of the file described by this media object. Only set if the status is "uploaded".

Array of objects (HashList)

The list of hash values used to describe the media object for the purpose of reusing.

created_date
string <date-time>

When this media object was created.

status
integer
Enum: 0 1 2

The status of this media object, either initialised (0), uploaded (1), or errored (2).

object (User)

A Flix user.

asset_type
string

A string specifying what type of media object this is.

object (Rectangle)

The dimensions of the underlying image. This will be omitted if the file is not an image.

Responses

Request samples

Content type
application/json
{
  • "id": 3333,
  • "asset_id": 400,
  • "name": "opening.psd",
  • "content_type": "image/vnd.adobe.photoshop",
  • "content_length": 8506541,
  • "content_hashes": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "status": 1,
  • "owner": {
    },
  • "asset_type": "artwork",
  • "dimensions": {
    }
}

Response samples

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

Fetch media objects from hash values

Returns a mapping of media objects whose hash, or hashes, match the hash values provided. This can be used by the caller to establish whether a file needs to be uploaded, or can be a media object already on the server can be reused.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
hashes
required
string
Example: hashes=eyJ0eXBlcyI6W3sidHlwZSI6InNlcXVlbmNlX3JldmlzaW9uX3R5cGUiLCJzaG93X2lkIjoxfSx7InR5cGUiOiJzZXF1ZW5jZV9yZXZpc2lvbl90eXBlIiwic2hvd19pZCI6Mn1dfQo=

A Base64-encoded query object of a list of hash values. This should take form described in Media object hashes.

Responses

Response samples

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

Fetch media objects from hash values (filename mapping)

Returns a mapping of media objects whose hash, or hashes, match the hash values provided. This can be used by the caller to establish whether a file needs to be uploaded, or can be a media object already on the server can be reused. This works the same as the media object from hashes endpoint, except this is grouped by filename.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

query Parameters
hashes
required
string
Example: hashes=ewoJIm15LWltYWdlLTEucHNkIjogWwoJCXsKCQkJInZhbHVlIjogImNlYjg5NTcxMDJhMDM1MjNmZDY2ZjM5YWJlOTRjZjMyIiwKCQkJInNvdXJjZV90eXBlIjogImZpbGUubWQ1IiwKCQkJImZ1bGxfbWF0Y2giOiB0cnVlCgkJfQoJXSwKCSJteS1pbWFnZS0yLnBzZCI6IFsKCQl7CgkJCSJ2YWx1ZSI6ICJkZWI4OTU3MTAyYTAzNTIzZmQ2NmYzOWFiZTk0Y2YzMiIsCgkJCSJzb3VyY2VfdHlwZSI6ICJmaWxlLm1kNSIsCgkJCSJmdWxsX21hdGNoIjogdHJ1ZQoJCX0sCgkJewoJCQkidmFsdWUiOiAiWygyLjMsIDMuNyksICg1LjAsIDAuMiksICgxLjEsIC0zLjMpXSIsCgkJCSJzb3VyY2VfdHlwZSI6ICJpbWFnZS5hbGdvMS5waXhlbF9kaXN0YW5jZSIsCgkJCSJmdWxsX21hdGNoIjogZmFsc2UKCQl9CgldCn0K

A Base64-encoded query object of a list of hash values. This should take form described in Media object hashes by filenames.

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

Entities

Entity query objects

Some entity endpoints accept a query parameter, q, that allows you to filter the result of the request. The query parameter should be a Base64-encoded JSON object with the following format:

Array of source_file_type (object) or asset_type (object) or extension_origin_type (object) or origin_type (object) or sequence_revision_type (object)

A list of types to retrieve for each entity.

{
  • "types": [
    ]
}

Fetch an entity

Fetch a single entity using the Entity ID. Optionally takes a max depth for children, determining how many levels of child and parent entities to fetch. Additionally a Base64-encoded filter object may be supplied to request entity types and filter on arbitrary fields, as described in Entity query objects.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

entityID
required
integer
Example: 91

ID of the entity.

query Parameters
q
string
Example: q=eyJ0eXBlcyI6W3sidHlwZSI6InNlcXVlbmNlX3JldmlzaW9uX3R5cGUiLCJzaG93X2lkIjoxfSx7InR5cGUiOiJzZXF1ZW5jZV9yZXZpc2lvbl90eXBlIiwic2hvd19pZCI6Mn1dfQo=

A Base64-encoded query object used to apply complex filters to requests. This should take form described in Entity query objects.

max_depth
integer
Default: 0
Example: max_depth=3

How many levels of children and parents to fetch. 0 means no children or parents will be fetched.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

Responses

Response samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Replace an entity

Replaces the stored entity with the one sent in the request. Note that this will not remove types or children.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

entityID
required
integer
Example: 91

ID of the entity.

query Parameters
q
string
Example: q=eyJ0eXBlcyI6W3sidHlwZSI6InNlcXVlbmNlX3JldmlzaW9uX3R5cGUiLCJzaG93X2lkIjoxfSx7InR5cGUiOiJzZXF1ZW5jZV9yZXZpc2lvbl90eXBlIiwic2hvd19pZCI6Mn1dfQo=

A Base64-encoded query object used to apply complex filters to requests. This should take form described in Entity query objects.

max_depth
integer
Default: 0
Example: max_depth=3

How many levels of children and parents to fetch. 0 means no children or parents will be fetched.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

Request Body schema: application/json
id
integer

The unique ID for this Entity.

show_id
integer

The ID of the show this entity belongs to.

object (User)

A Flix user.

created_date
string <date-time>

The datetime this entity was created, this is set automatically and immutable.

modified_date
string <date-time>

The datetime this entity was last modified, this is set automatically.

data
any

Arbitrary JSON data which can be set and retrieved by via the API.

Array of objects or objects or objects or objects or objects (TypeList)

A list of types this entity takes the form of.

object (RelationMap)

A map of children of this entity, categorised by the type of relation between each child and this entity.

object (RelationMap)

A map of parents to this entity, categorised by the type of relation between this entity and each parent.

hidden
boolean

True if the entity has been soft-deleted.

Responses

Request samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Update an entity

Updates the stored entity with the data provided in the request. Fields not specified will not be updated. Note that this will not remove types or children.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

entityID
required
integer
Example: 91

ID of the entity.

query Parameters
q
string
Example: q=eyJ0eXBlcyI6W3sidHlwZSI6InNlcXVlbmNlX3JldmlzaW9uX3R5cGUiLCJzaG93X2lkIjoxfSx7InR5cGUiOiJzZXF1ZW5jZV9yZXZpc2lvbl90eXBlIiwic2hvd19pZCI6Mn1dfQo=

A Base64-encoded query object used to apply complex filters to requests. This should take form described in Entity query objects.

max_depth
integer
Default: 0
Example: max_depth=3

How many levels of children and parents to fetch. 0 means no children or parents will be fetched.

display_hidden
boolean
Enum: true false
Example: display_hidden=true

Whether to show hidden items.

Request Body schema: application/json
id
integer

The unique ID for this Entity.

show_id
integer

The ID of the show this entity belongs to.

object (User)

A Flix user.

created_date
string <date-time>

The datetime this entity was created, this is set automatically and immutable.

modified_date
string <date-time>

The datetime this entity was last modified, this is set automatically.

data
any

Arbitrary JSON data which can be set and retrieved by via the API.

Array of objects or objects or objects or objects or objects (TypeList)

A list of types this entity takes the form of.

object (RelationMap)

A map of children of this entity, categorised by the type of relation between each child and this entity.

object (RelationMap)

A map of parents to this entity, categorised by the type of relation between this entity and each parent.

hidden
boolean

True if the entity has been soft-deleted.

Responses

Request samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Soft-delete an entity

This will set the hidden field on the entity.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

entityID
required
integer
Example: 91

ID of the entity.

query Parameters
q
string
Example: q=eyJ0eXBlcyI6W3sidHlwZSI6InNlcXVlbmNlX3JldmlzaW9uX3R5cGUiLCJzaG93X2lkIjoxfSx7InR5cGUiOiJzZXF1ZW5jZV9yZXZpc2lvbl90eXBlIiwic2hvd19pZCI6Mn1dfQo=

A Base64-encoded query object used to apply complex filters to requests. This should take form described in Entity query objects.

max_depth
integer
Default: 0
Example: max_depth=3

How many levels of children and parents to fetch. 0 means no children or parents will be fetched.

Responses

Response samples

Content type
application/json
{
  • "error_number": 0,
  • "message": "bad request",
  • "status_code": 400
}

Create a new entity

The provided entity must have no ID set.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
id
integer

The unique ID for this Entity.

show_id
integer

The ID of the show this entity belongs to.

object (User)

A Flix user.

created_date
string <date-time>

The datetime this entity was created, this is set automatically and immutable.

modified_date
string <date-time>

The datetime this entity was last modified, this is set automatically.

data
any

Arbitrary JSON data which can be set and retrieved by via the API.

Array of objects or objects or objects or objects or objects (TypeList)

A list of types this entity takes the form of.

object (RelationMap)

A map of children of this entity, categorised by the type of relation between each child and this entity.

object (RelationMap)

A map of parents to this entity, categorised by the type of relation between this entity and each parent.

hidden
boolean

True if the entity has been soft-deleted.

Responses

Request samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "id": 124,
  • "show_id": 3,
  • "owner": {
    },
  • "created_date": "2019-08-24T14:15:22Z",
  • "modified_date": "2019-08-24T14:15:22Z",
  • "data": null,
  • "type_data": [
    ],
  • "children": {
    },
  • "parents": {
    },
  • "hidden": true
}

Importing/Reconforming

Publish back a sequence from Avid (non-episodic)

Creates a new sequence revision based on an AAF format.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Publish back a sequence from Avid (episodic)

Creates a new sequence revision based on an AAF format.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Publish back a sequence from Premiere (non-episodic)

The reconform endpoint will create a sequence revision from a Premiere FCPXML format.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Publish back a sequence from Avid (episodic)

The reconform endpoint will create a sequence revision from a Premiere FCPXML format.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Import a non-episodic sequence from SBP

The reconform endpoint will create a sequence revision from a SBP FCPXML.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Import an episodic sequence from Storyboard Pro

The reconform endpoint will create a sequence revision from a SBP FCPXML.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
asset_id
required
integer

The asset ID of the AAF to import from Avid, or the reference MOV when importing from Premiere.

comment
string

Describes the intent of the import.

object

Holds a map of Storyboard Pro audio files to asset IDs.

object

Holds a map from Storyboard Pro panel IDs to the hashes of the panel artwork PSD.

match_disabled
boolean

Will, if set, will skip attempting to match artwork from SBP, preventing any asset reuse.

object

Holds settings used for publishing.

sbp_project_filepath
string

The path on the user's machine to the Storyboard Pro project being imported.

source_files
Array of integers

The IDs of the assets holding the source files. Currently only the first source file will be used.

xml_asset
string

Holds the FCPXML data from Storyboard Pro or Premiere.

sboard_asset
string

Holds the .sboard data when importing from Storyboard Pro.

Responses

Request samples

Content type
application/json
{
  • "asset_id": 42,
  • "comment": "Second round of changes",
  • "sbp_files": {
    },
  • "artwork_hashes": {
    },
  • "match_disabled": true,
  • "publish_settings": {
    },
  • "sbp_project_filepath": "/Users/flixuser/SBP/myshow/myshow.sboard",
  • "source_files": [
    ],
  • "xml_asset": "string",
  • "sboard_asset": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Exporting/Publishing

Create a dialogue file (non-episodic)

Creates a dialogue file containing the dialogue of all panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the dialogue job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
format
required
string
Enum: "avid" "srt"

The format to use to export the dialogue.

clip_name
required
string

The format of the clip name of this dialogue in Avid.

Array of objects (PanelRevision)

A list of panel revisions. If supplied, the dialogue file will only contain the dialogue from these revisions.

Responses

Request samples

Content type
application/json
{
  • "format": "avid",
  • "clip_name": "[show_tracking_code]_[sequence_tracking_code]_[panel_id]_v[panel_revision]",
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a dialogue file (episodic)

Creates a dialogue file containing the dialogue of all panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the dialogue job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
format
required
string
Enum: "avid" "srt"

The format to use to export the dialogue.

clip_name
required
string

The format of the clip name of this dialogue in Avid.

Array of objects (PanelRevision)

A list of panel revisions. If supplied, the dialogue file will only contain the dialogue from these revisions.

Responses

Request samples

Content type
application/json
{
  • "format": "avid",
  • "clip_name": "[show_tracking_code]_[sequence_tracking_code]_[panel_id]_v[panel_revision]",
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a QuickTime file (non-episodic)

Creates a QuickTime file from all the panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the QuickTime job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

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

Whether to create an SRT subtitle file from the dialogue.

Array of objects (PanelRevision)

A list of panel revisions. If included, the quicktime will only contain the provided revisions.

Responses

Request samples

Content type
application/json
{
  • "include_dialogue": false,
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a QuickTime file (episodic)

Creates a QuickTime file from all the panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the QuickTime job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

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

Whether to create an SRT subtitle file from the dialogue.

Array of objects (PanelRevision)

A list of panel revisions. If included, the quicktime will only contain the provided revisions.

Responses

Request samples

Content type
application/json
{
  • "include_dialogue": false,
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a contact sheet PDF (non-episodic)

Creates a contact sheet PDF file from all the panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the contact sheet job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
contactsheet_id
required
integer

The ID of the contact sheet template to use. Must be assigned to the show the sequence revision to export belongs to.

Array of objects (PanelRevision)

A list of panel revisions. If included, the contact sheet will only contain the provided revisions.

Responses

Request samples

Content type
application/json
{
  • "contactsheet_id": 5,
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a contact sheet PDF (episodic)

Creates a contact sheet PDF file from all the panels in the given sequence, or the specific panel revisions specified. This endpoint will return a task ID that can be used to poll for the status of the contact sheet job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
contactsheet_id
required
integer

The ID of the contact sheet template to use. Must be assigned to the show the sequence revision to export belongs to.

Array of objects (PanelRevision)

A list of panel revisions. If included, the contact sheet will only contain the provided revisions.

Responses

Request samples

Content type
application/json
{
  • "contactsheet_id": 5,
  • "panel_revisions": [
    ]
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Create a YAML state file

Creates a YAML file describing the state of the show, including all sequences, sequence revisions, and panels. This endpoint will return a task ID that can be used to poll for the status of the YAML job using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

Request Body schema: application/json
sequence_ids
Array of integers

The IDs of the sequences to export as YAML. If null, all sequences will be exported.

anonymize_strings
boolean
Default: false

Indicates whether strings such as dialogue should be replaced with randomized strings.

include_assets
boolean
Default: false

Specifies whether to include the names of asset files used by panels in the YAML.

Responses

Request samples

Content type
application/json
{
  • "sequence_ids": [
    ],
  • "anonymize_strings": true,
  • "include_assets": true
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Export a sequence revision to Storyboard Pro (non-episodic)

Creates a Storyboard Pro-compatible XML file and returns the contents of the file, along with a list of media objects referenced by the XML that must be downloaded.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
export_path
string

The path to where the asset files are located, or will be located, on the user's machine.

update_dialogue
boolean

Whether dialogue should be included in the generated XML. Currently ignored; dialogue will always be included.

update_action_note
boolean

Whether action notes should be included in the generated XML. Currently unused.

update_camera_move
boolean

Whether camera move keyframes should be included in the generated XML.

update_audio
boolean

Whether a path to the sequence revision's audio should be included in the generated XML. Currently ignored; audio will always be included if available.

update_markers
boolean

Whether scene markers should be included in the generated XML. Currently unused.

Responses

Request samples

Content type
application/json
{
  • "export_path": "/home/user/.config/Flix/Export",
  • "update_dialogue": true,
  • "update_action_note": true,
  • "update_camera_move": true,
  • "update_audio": true,
  • "update_markers": true
}

Response samples

Content type
application/json
{
  • "xml": "string",
  • "media_object_info": {
    }
}

Export a sequence revision to Storyboard Pro (episodic)

Creates a Storyboard Pro-compatible XML file and returns the contents of the file, along with a list of media objects referenced by the XML that must be downloaded.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
export_path
string

The path to where the asset files are located, or will be located, on the user's machine.

update_dialogue
boolean

Whether dialogue should be included in the generated XML. Currently ignored; dialogue will always be included.

update_action_note
boolean

Whether action notes should be included in the generated XML. Currently unused.

update_camera_move
boolean

Whether camera move keyframes should be included in the generated XML.

update_audio
boolean

Whether a path to the sequence revision's audio should be included in the generated XML. Currently ignored; audio will always be included if available.

update_markers
boolean

Whether scene markers should be included in the generated XML. Currently unused.

Responses

Request samples

Content type
application/json
{
  • "export_path": "/home/user/.config/Flix/Export",
  • "update_dialogue": true,
  • "update_action_note": true,
  • "update_camera_move": true,
  • "update_audio": true,
  • "update_markers": true
}

Response samples

Content type
application/json
{
  • "xml": "string",
  • "media_object_info": {
    }
}

Publish a sequence revision to editorial (non-episodic)

Starts an asynchronous publish of the sequence revision to any of the supported editorial tools; at the time of writing, these are Premiere and Avid. The publish settings are mostly editor specific, with any Premiere-only fields being ignored if target_editor is set to avid, and vice versa. This endpoint returns a chain ID which can be polled for results using the job chain endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
comment
string

A comment explaining the intent of the publish.

object

Holds the settings for the publish.

target_editor
required
string
Enum: "premiere" "avid"

What editor to publish to.

send_email_on_complete
boolean
Default: true

Whether to send an email on publish completion.

Responses

Request samples

Content type
application/json
{
  • "comment": "string",
  • "publish_settings": {
    },
  • "target_editor": "premiere",
  • "send_email_on_complete": true
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Publish a sequence revision to editorial (episodic)

Starts an asynchronous publish of the sequence revision to any of the supported editorial tools; at the time of writing, these are Premiere and Avid. The publish settings are mostly editor specific, with any Premiere-only fields being ignored if target_editor is set to avid, and vice versa. This endpoint returns a chain ID which can be polled for results using the job chain endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
comment
string

A comment explaining the intent of the publish.

object

Holds the settings for the publish.

target_editor
required
string
Enum: "premiere" "avid"

What editor to publish to.

send_email_on_complete
boolean
Default: true

Whether to send an email on publish completion.

Responses

Request samples

Content type
application/json
{
  • "comment": "string",
  • "publish_settings": {
    },
  • "target_editor": "premiere",
  • "send_email_on_complete": true
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Job chains

The Flix server represents a compound action, such as a publish, with an object known as a job chain. Internally, the job chain contains a list of small jobs with singular responsibilities. From the API, the chain is represented as a UUID. The job chain ID can be used to query the status of a chain.

The status of a completed job chain may contain additional data depending on what jobs were run. For instance, a publish to Premiere will result in a job chain status containing asset IDs that can be used to download the generated files.

Get the status of a job chain Deprecated

Returns the status of a job chain not associated with a show. This is a legacy endpoint provided for compatibility with job chains created prior to Flix 6.5; any newly created chains should be requested using the /show/{showId}/chain/{taskID} endpoint.

Authorizations:
Signed auth
path Parameters
taskID
required
string[a-zA-Z0-9-]+
Example: 00036474-e363-4db8-8f46-e532aac9ef00

Task ID of a server job chain.

Responses

Response samples

Content type
application/json
{
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "status": "in progress",
  • "start_time": "2019-08-24T14:15:22Z",
  • "end_time": "2019-08-24T14:15:22Z",
  • "results": { },
  • "show_id": 3
}

Get the status of a job chain

Returns the status of a job chain which is running, or has previously run, anywhere on the server network.

There can be a short delay, usually sub-second, between a job chain being created—by starting a publish, for example—and its status becoming available. If a 404 occurs unexpectedly, try again after a few seconds.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

taskID
required
string[a-zA-Z0-9-]+
Example: 00036474-e363-4db8-8f46-e532aac9ef00

Task ID of a server job chain.

Responses

Response samples

Content type
application/json
{
  • "task_id": "a8966643-a199-448e-812a-9ae404cfa692",
  • "status": "in progress",
  • "start_time": "2019-08-24T14:15:22Z",
  • "end_time": "2019-08-24T14:15:22Z",
  • "results": { },
  • "show_id": 3
}

Email

Send an email (episodic)

Sends an email summarising a sequence revision using the specified template. This endpoint returns a chain ID which can be polled for results using the job chain endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

episodeId
required
integer
Example: 100

ID of the episode.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
comment
string

A description of the revision.

email_template
required
string
Enum: "from editorial" "PUBLISH"

Specifies what template to use for the email.

clip_name
required
string

A formatted string specifying the name of each panel.

Responses

Request samples

Content type
application/json
{
  • "comment": "First draft",
  • "email_template": "from editorial",
  • "clip_name": "[show_tracking_code]_[sequence_tracking_code]_[panel_id]_v[panel_revision]"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Send an email (non-episodic)

Sends an email summarising a sequence revision using the specified template. This endpoint returns a chain ID which can be polled for results using the job chain endpoint.

Authorizations:
Signed auth
path Parameters
showId
required
integer
Example: 3

ID of the show.

sequenceId
required
integer
Example: 50

ID of the sequence.

revisionId
required
integer
Example: 1

ID of the sequence or panel revision.

Request Body schema: application/json
comment
string

A description of the revision.

email_template
required
string
Enum: "from editorial" "PUBLISH"

Specifies what template to use for the email.

clip_name
required
string

A formatted string specifying the name of each panel.

Responses

Request samples

Content type
application/json
{
  • "comment": "First draft",
  • "email_template": "from editorial",
  • "clip_name": "[show_tracking_code]_[sequence_tracking_code]_[panel_id]_v[panel_revision]"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Websocket connections

Flix uses websockets to provide real-time updates about jobs. Messages that might be sent via websocket include the progress of job chains or notifications that an AAF file or dialogue file is ready for download.

Note: before the webhook system can be used it must be enabled via the Flix server configuration file. Please see the server options documentation for more details.

Open a websocket connection

A request to this endpoint will be upgraded to a websocket connection. The client ID is an arbitrary identifier

If a valid UUID is not provided to the websocket endpoint using the id parameter, the websocket connection will be closed with a 4000 close code. If the server is out of seats and cannot open another connection, the websocket connection will be closed with a 4003 close code.

Authorizations:
Signed auth
query Parameters
id
required
string
Example: id=fd078281-044f-4f29-9ce5-4a26c173f190

ID of the Flix client.

Responses

Websocket messages

Websocket messages consist of a single byte indicating the message type, followed by the payload. Websockets currently do not support messages sent from the client to the server other than pings.

Below follows a list of possible message types.

0: Ping

Sent in response to a message from the client.

The server will expect the client message to be a JSON object with a data field:

data
any

The data to return to the client.

{
  • "data": "ping"
}

The value of the data field will be returned to the client, JSON-encoded:

any (WebsocketPong)
"ping"

1: Asset updated

Sent when an asset has been updated by a job, generally indicating that a transcode has completed for that asset.

assetID
integer

The ID of the asset that was updated.

status
string

A description of how the asset was updated.

{
  • "assetID": 10,
  • "status": "finished rendering thumbnail"
}

2: Publish completed

Sent when a publish job has completed.

No payload is sent with this message.

3: QuickTime created

Sent when a job to create a QuickTime file has finished.

assetID
integer

The ID of the asset holding the new QuickTime file.

{
  • "assetID": 20
}

5: Job error

Sent when a job in a chain has failed, causing the job chain to abort.

taskId
string <uuid>

The ID of the job chain that failed.

percentage
integer

The progress of the job chain (always 100 in the case of an error).

status
string

The last status update of the job chain.

error
string

An error message indicating the reason for the failure.

{
  • "taskId": "4825f7bf-6b67-47e1-9a49-0e5317b00e7a",
  • "percentage": 100,
  • "status": "Extracting clips from AAF",
  • "error": "Server error, check server logs for more details"
}

6: License valid

Sent when opening a new websocket connection to indicate that the server license is valid and the connection was established successfully.

licensed
boolean
Default: true

Whether the server license allows for an additional seat; always true if this message is sent.

{
  • "licensed": true
}

7: AAF created

Indicates that an AAF file was created. Will be sent once for each AAF file created (i.e. both the new and all AAF files).

assetID
integer

The ID of the asset holding the new AAF file.

{
  • "assetID": 30
}

10: Job chain status

Sent regularly to provide information about the progress of a job chain.

taskId
string <uuid>

The ID of the job chain.

percentage
integer [ 0 .. 100 ]

The progress of the job chain.

status
string

The current status of the job chain.

{
  • "taskId": "4825f7bf-6b67-47e1-9a49-0e5317b00e7a",
  • "percentage": 80,
  • "status": "Creating quicktime"
}

12: Editorial import status

Provides the status of clips being processed during an editorial import.

position
integer >= 0

The index of this panel.

frameIn
integer

The start time of this panel.

name
string

The name of the clip corresponding to this panel.

ref
boolean

Whether this panel is a ref panel.

status
string
Enum: "pending" "inProgress" "complete" "unsupported" "errored"

The status of this panel.

error
string

An error message set if the status is unsupported or errored.

{
  • "position": 2,
  • "frameIn": 48,
  • "name": "show_9998_0038_v01",
  • "ref": false,
  • "status": "pending",
  • "error": ""
}

13: Editorial import complete

Sent when an editorial import has completed, providing the revision number of the newly created sequence revision.

sequence_revision
integer

The revision number of the newly created sequence revision.

{
  • "sequence_revision": 6
}

14: Storyboard Pro import complete

Sent when a Storyboard Pro import has completed. The payload includes a list of assets to which artwork, and possibly source media, should be uploaded.

sequence_revision
integer

The new sequence revision created by the import.

object

A map from Storyboard Pro panel IDs to asset information.

{
  • "sequence_revision": 4,
  • "missing_assets": {
    }
}

15: FCPXML created

Indicates that an FCPXML file (e.g. for Premiere) was created. Will be sent once for each FCPXML file created (i.e. both the new and all AAF files).

assetID
integer

The ID of the asset holding the new FCPXML file.

{
  • "assetID": 32
}

16: Dialogue complete

Sent when a dialogue file has been created.

taskId
string <uuid>

The ID of the job chain.

assetID
integer

The ID of the asset holding the new dialogue file.

{
  • "taskId": "4825f7bf-6b67-47e1-9a49-0e5317b00e7a",
  • "assetID": 51
}

17: Asset status

Sent to provide information about an asset while a transcode job is running.

assetID
integer

The ID of the updated asset.

status
string

A description of how the asset has been updated.

{
  • "assetID": 101,
  • "status": "copying generated file to asset directory"
}

18: Thumbnail creation error

Indicates that an error occurred when attempting to generate thumbnails for an asset.

assetID
integer

The ID of the asset for which the transcode failed.

status
string

The status of the transcode.

{
  • "assetID": 101,
  • "status": "failed to create thumbnail"
}

19: Contact sheet created

Sent when a job to create a contact sheet PDF file has finished.

assetID
integer

The ID of the asset holding the new contact sheet PDF file.

{
  • "assetID": 42
}

20: State YAML created

Sent when a job to create a state YAML file has finished.

assetID
integer

The ID of the asset holding the new state YAML file.

{
  • "assetID": 39
}

21: Storyboard Pro import status

Provides a log message to the client during a Storyboard Pro import.

status
string

A log message describing the status of the import.

level
integer

The level of the log message. Uses logrus levels (0: panic, 1: fatal, 2: error, 3: warning, 4: info, 5: debug, 6: trace).

{
  • "status": "error processing audio clip; audio will be skipped",
  • "level": 3
}

22: New extension has been added to the server

Sent when a new third-party extension has been added to the Server and is available for the Client to download and install.

id
integer

The Flix set ID.

name
string

The name of the extension

version
string

The semantic version of the extension

client_uid
string

The unique ID for the extension. This should remain the same for multiple versions of a plugin.

Array of objects (ExtensionApplication)

The list of applications this plugin supports

type
string
Enum: "Sketch" "Editorial" "3D" "Standalone" "Script"

The type of extension.

flix_api_versions
Array of strings

The minimum versions of client API required to run the extension.

object (Asset)

The structure which we use for storing data for Flix assets.

documentation_link
string

An optional URL to supporting documentation for the extension.

{
  • "id": 102,
  • "name": "Photoshop Plugin",
  • "version": "1.0.0",
  • "client_uid": "c9edda37-2672-4cab-9b83-ede3afcf05f5",
  • "applications": [
    ],
  • "type": "Sketch",
  • "flix_api_versions": [
    ],
  • "asset": {
    },
  • "documentation_link": "string"
}