Authentication

The Flix Server REST API uses signed headers for its authentication. You must provide
a signed Authentication header with your requests to authorize your access to the
endpoint. We employ a signing algorithm which is explained below to generate the
signature for your requests.

The API expects the signature to be created and hashed using an Access Key. In order
to obtain a key, see Obtaining an Access Key.

Authorization: FNAUTH <secret_access_key_id>:<signature>

You must replace secret_access_key_id with your personal API key, and signature with your generated signature.

The Authenticate endpoint is for creating a time limited Access Key which you can use
to sign future requests. The Access Key will last for 24 hours.

The method for authentication is basic-authentication. You must provide the base64 encoded authorization header using your username and password to authenticate.

Authorization: Basic <username>:<password>

The signature is a a base64 encoded colon separated string formed of your username and password. <username>:<password>.

Don't forget to base64 encode the username:password string.

Extending an Access Key

If your Access Key is nearing it’s expiry time, you may wish to extend it to continue
its use without requiring the users credentials. This is allowed in order to prevent
you having to store user credentials.

Media Objects

Media Objects in Flix are files (image, quicktime, audio, etc.), it could be any type of files.
A Media Object is not link to a sequence / episode / show, you can link a media object to an asset and reuse the same one if needed.

Status

Status

Description

0

File info created

1

File uploaded

2

Processing

3

Error occured

4

Completed

Create File info

Create a file info containing the content length and all informations that will ensure the upload was succesfull.

Download File

Retrieve the file info to be able to retrieve the file itself.

Parameter

Type

Description

ID

integer

The ID of the media object

GET /file/{ID}/data HTTP/1.1
Authorization: FNAUTH <signature>

Shows

Shows in Flix are the main container entity for each project. Sequences and Panels
all reside within a Show and are only accessible within it. A Show contains various
configuration options and is intended to be immutable. For example, once a Show is
created, its framerate or aspect ratio cannot be changed.

You can modify a shows values by requesting a PATCH request to the shows endpoint with the
values you wish to change.

URL Parameters

Parameter

Description

ID

The id of the Show to delete

Transcoding

Our transcode system offers some limited options for transcoding or transforming media objects
stored in Flix into new media objects. For example, generating publish images, or thumbnails for
panels. A transcode is asynchronous, to retrieve the end of the transcode you can listent to the server websocket and filter by job ID.

Status

Description

-1

Error

0

Finished

1

Running

2

Pending

3

Created

Transcode Types

Types

Description

Required params

‘thumbs’

Generate thumbnails, scaled, fullres images from any documentYou can specify scaled / fullres to generate them at the same time

asset_id

‘publish’

Generate new files with burnin from a sequence

show_id, sequence_id, revision_id, framerate

‘quicktime’

Generate a quicktime for a sequenceAdding create_new_asset on the metadata will duplicate the asset and link it

URL Parameters

Parameter

Description

ID

The id of the Transcode Job to retrieve

Sequences

Sequences are a revisable collection of panels. The panels in a sequences are ordered.
A sequence revision is immutable and therefore modifying a sequence will result
in the creation of a new revision. If a Sequence is created in a episode, it is not
accessible through show only route, and vice versa.

Sequence Revisions

Sequences are a revisable collection of panels. The panels in a sequences are ordered.
A sequence revision is immutable and therefore modifying a sequence will result
in the creation of a new revision.

Sequence Revision IDs are integers which automatically increment with each addition
of a new revision. The Sequence entity contains a property ‘revisions_count’ which
tell you how many revisions of that Sequence exist.

If a Sequence Revision is created in a episode, it is not
accessible through show only route, and vice versa.

This endpoint allows to publish a sequence revision. It generates project files
ready to be used by editorial application.

When the revision is successfully published, all users from user groups assigned
to the sequence’s show will receive an email containing the difference between the
currently and previously published revisions.

URL Parameters

Parameter

Type

Description

showId

integer

The ID of the parent Show

sequenceId

integer

The ID of the sequence

episodeId

integer

The ID of the episode

revisionId

integer

The ID of the sequence revision to update

Request Properties

Property

Type

Description

Comment

string

A comment specific to the published revision

Episodes

Episodes are a second level of organising Sequences within a show. It is possible
that a show is epidosic and therefore requires multiple sequences to be grouped by
episode. To facilitate this, you can create episodes within a Show, and then sequences
can be created at a lower level in the hierachy.

Note — Once a Show becomes episodic, the sequences API will become unavailable to
use on the show. You instead should use the episodes api to retrieve sequences.

URL Parameters

Dialogues

The dialogues api is for handling all dialogues within a show. Dialogues are created at the
sequence revision level, and a single dialogue can be associated with one or more panels.

Dialogues can be retrieved in relation to a sequence revision, to get all dialogues for that revision, or can be retrieved
for a panel, in order to get the dialogue revision history for that panel, regardless of sequence revision.

This endpoint retrieves a specific panel. The panel contains the revision_counter property, which indicates the number of revisions the panel has gone through. You can determine from this number the revisions
IDs which you can obtain specific revision information. The higher the revision counter value, the newer the revision
will be. 1 being the first revision.

The Panel entity does not contain any actual panel information,
this entity is purely a container.

Posting to the Panel Revision endpoint will create a new revision of the panel. The
panel revisions counter on the panel endpoint will be atomically incremented. It is
acceptable to post an arbitary data into the ‘data’ property of the revision.

A panel revision is immutable, you cannot modify the data within it. In order to
update a panel data you must create a new revision. Data within a revision is monolithic,
there is no incremental changes between revisions.

URL Parameters

Parameter

Description

show_id

The ID of the show the panel is contained in

panel_id

The ID of the panel to retrieve

Body Parameters

Parameter

Description

data

An arbitary JSON object containing the data you require for this revision.

assets

An array of asset reference objects

Assets

Assets are any type of media object you wish to store in Flix. Assets are immutable
so once you have stored its data, you can no longer update it. Assets can be associated
with Panels in various ways. For example you may map an Asset to a Panel as “artwork”,
or it may be mapped as “audio”. Assets are stored globally in Flix, so it is possible
to use the same Asset across multiple shows, during Asset creation which detect if
it is a duplicate and will ultilise the previously store data to reduce storage.

When an Asset is stored in Flix it is then replicated across other Flix Servers for
high-availability and redundancy. When you retrieve an Asset object using the API,
it will contain various locations where the Asset Data resides, you can then fetch
the file from whichever location suits you best.

Flix has a transcode and asset processing system will can run image processing operations
on Assets after they have been uploaded. You can customise this process however you
wish, but it is especially useful for creating thumbnails, or cropping large images.