Authentication

Log in user by creating and registering auth tokens.

POST /auth/login

Login is based on email and password. If no user match given email and a destkop ID, it looks in matching the desktop ID with the one stored in database. It is useful for clients that run on desktop tools and that don't know user email.

Responses

  • 200

    Login successful

  • 400

    Login failed

  • 500

    Database not reachable

POST /auth/login
curl \
 --request POST 'http://api.example.com/auth/login' \
 --header "Authorization: $API_KEY"








































Resource to send an OTP by email to user.

GET /auth/email-otp

Responses

  • 200

    OTP by email sent

  • 400

    Invalid password Wrong or expired token Inactive user

GET /auth/email-otp
curl \
 --request GET 'http://api.example.com/auth/email-otp' \
 --header "Authorization: $API_KEY"




































Resource to allow a user to login with SAML SSO.

GET /auth/saml/login

Responses

  • 302

    Redirect to the SAML IDP.

  • 400

    Wrong parameter.

GET /auth/saml/login
curl \
 --request GET 'http://api.example.com/auth/saml/login' \
 --header "Authorization: $API_KEY"













































Retrieve the casting of a given asset.

GET /data/assets/{asset_id}/casting

Path parameters

  • asset_id Required

Responses

  • 200

    Casting of given asset

GET /data/assets/{asset_id}/casting
curl \
 --request GET 'http://api.example.com/data/assets/{asset_id}/casting' \
 --header "Authorization: $API_KEY"
















Create an asset instance inside given asset.

POST /data/assets/{asset_id}/asset-asset-instances

Path parameters

  • asset_id Required

Responses

  • 201

    Asset instance created inside given asset

POST /data/assets/{asset_id}/asset-asset-instances
curl \
 --request POST 'http://api.example.com/data/assets/{asset_id}/asset-asset-instances' \
 --header "Authorization: $API_KEY"




















Share or unshare a list of assets.

POST /actions/assets/share

Responses

  • 201

    All assets modified.

POST /actions/assets/share
curl \
 --request POST 'http://api.example.com/actions/assets/share' \
 --header "Authorization: $API_KEY"

Share or unshare all assets (or a list of assets) for given project.

POST /actions/projects/{project_id}/assets/share

Path parameters

  • project_id Required

Responses

  • 201

    All assets modified.

POST /actions/projects/{project_id}/assets/share
curl \
 --request POST 'http://api.example.com/actions/projects/{project_id}/assets/share' \
 --header "Authorization: $API_KEY"




Retrieve all shared assets used in project.

GET /data/projects/{project_id}/assets/shared-used

Path parameters

  • project_id Required

Responses

  • 200

    All shared assets used in project

GET /data/projects/{project_id}/assets/shared-used
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/assets/shared-used' \
 --header "Authorization: $API_KEY"



















































































































Retrieve all entries for given model.

GET /data/persons

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

GET /data/persons
curl \
 --request GET 'http://api.example.com/data/persons' \
 --header "Authorization: $API_KEY"




























































































Create a model with data given in the request body.

POST /data/task-types

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/task-types
curl \
 --request POST 'http://api.example.com/data/task-types' \
 --header "Authorization: $API_KEY"
















Create a model with data given in the request body.

POST /data/task-status

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/task-status
curl \
 --request POST 'http://api.example.com/data/task-status' \
 --header "Authorization: $API_KEY"












Retrieve all entries for given model.

GET /data/tasks

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

GET /data/tasks
curl \
 --request GET 'http://api.example.com/data/tasks' \
 --header "Authorization: $API_KEY"

Retrieve a model corresponding at given ID and return it as a JSON object.

GET /data/tasks/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 200

    Model as a JSON object

  • 400

    Statement error

  • 404

    Value error

GET /data/tasks/{instance_id}
curl \
 --request GET 'http://api.example.com/data/tasks/{instance_id}' \
 --header "Authorization: $API_KEY"












































Retrieve all entries for given model.

GET /data/file-status/

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

GET /data/file-status/
curl \
 --request GET 'http://api.example.com/data/file-status/' \
 --header "Authorization: $API_KEY"

Create a model with data given in the request body.

POST /data/file-status/

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/file-status/
curl \
 --request POST 'http://api.example.com/data/file-status/' \
 --header "Authorization: $API_KEY"












































Update a model with data given in the request body.

PUT /data/output-files/{instance_id}

JSON format is expected. Model performs the validation automatically when fields are modified.

Path parameters

  • instance_id Required

Responses

  • 200

    Model updated

  • 400

    Error

PUT /data/output-files/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/output-files/{instance_id}' \
 --header "Authorization: $API_KEY"

Delete a model corresponding at given ID and return it as a JSON object.

DELETE /data/output-files/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 204

    Model deleted

  • 400

    Statement or integrity error

  • 404

    Instance non-existant

DELETE /data/output-files/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/output-files/{instance_id}' \
 --header "Authorization: $API_KEY"








Retrieve an output type corresponding at given ID and return it as a

GET /data/output-types/{instance_id}

JSON object.

Path parameters

  • output_type_id Required

Responses

  • 200

    Model as a JSON object

  • 400

    Statement error

  • 404

    Value error

GET /data/output-types/{instance_id}
curl \
 --request GET 'http://api.example.com/data/output-types/{instance_id}' \
 --header "Authorization: $API_KEY"
















































































Update a model with data given in the request body.

PUT /data/comments/{instance_id}

JSON format is expected. Model performs the validation automatically when fields are modified.

Path parameters

  • instance_id Required

Responses

  • 200

    Model updated

  • 400

    Error

PUT /data/comments/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/comments/{instance_id}' \
 --header "Authorization: $API_KEY"












Update a model with data given in the request body.

PUT /data/time-spents/{instance_id}

JSON format is expected. Model performs the validation automatically when fields are modified.

Path parameters

  • instance_id Required

Responses

  • 200

    Model updated

  • 400

    Error

PUT /data/time-spents/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/time-spents/{instance_id}' \
 --header "Authorization: $API_KEY"
































































Create a model with data given in the request body.

POST /data/asset-instances/

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/asset-instances/
curl \
 --request POST 'http://api.example.com/data/asset-instances/' \
 --header "Authorization: $API_KEY"




























































Retrieve a model corresponding at given ID and return it as a JSON object.

GET /data/notifications/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 200

    Model as a JSON object

  • 400

    Statement error

  • 404

    Value error

GET /data/notifications/{instance_id}
curl \
 --request GET 'http://api.example.com/data/notifications/{instance_id}' \
 --header "Authorization: $API_KEY"
























































Retrieve a model corresponding at given ID and return it as a JSON object.

GET /data/schedule-items/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 200

    Model as a JSON object

  • 400

    Statement error

  • 404

    Value error

GET /data/schedule-items/{instance_id}
curl \
 --request GET 'http://api.example.com/data/schedule-items/{instance_id}' \
 --header "Authorization: $API_KEY"

Update a model with data given in the request body.

PUT /data/schedule-items/{instance_id}

JSON format is expected. Model performs the validation automatically when fields are modified.

Path parameters

  • instance_id Required

Responses

  • 200

    Model updated

  • 400

    Error

PUT /data/schedule-items/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/schedule-items/{instance_id}' \
 --header "Authorization: $API_KEY"




Retrieve all entries for given model.

GET /data/news/

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

GET /data/news/
curl \
 --request GET 'http://api.example.com/data/news/' \
 --header "Authorization: $API_KEY"








Update a model with data given in the request body.

PUT /data/news/{instance_id}

JSON format is expected. Model performs the validation automatically when fields are modified.

Path parameters

  • instance_id Required

Responses

  • 200

    Model updated

  • 400

    Error

PUT /data/news/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/news/{instance_id}' \
 --header "Authorization: $API_KEY"








Create a model with data given in the request body.

POST /data/milestones/

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/milestones/
curl \
 --request POST 'http://api.example.com/data/milestones/' \
 --header "Authorization: $API_KEY"
































































































Create a model with data given in the request body.

POST /data/chat-messages/

JSON format is expected. The model performs the validation automatically when instantiated.

Responses

  • 200

    Model created

  • 400

    Error

POST /data/chat-messages/
curl \
 --request POST 'http://api.example.com/data/chat-messages/' \
 --header "Authorization: $API_KEY"
















































Delete a model corresponding at given ID and return it as a JSON object.

DELETE /data/studios/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 204

    Model deleted

  • 400

    Statement or integrity error

  • 404

    Instance non-existant

DELETE /data/studios/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/studios/{instance_id}' \
 --header "Authorization: $API_KEY"





























































Retrieve all task types related to a given edit.

GET /data/edits/{edit_id}/task-types

Path parameters

  • edit_id Required

Responses

  • 200

    All task types related to given edit

GET /data/edits/{edit_id}/task-types
curl \
 --request GET 'http://api.example.com/data/edits/{edit_id}/task-types' \
 --header "Authorization: $API_KEY"








Retrieve data versions of given edit.

GET /data/edits/{edit_id}/versions

Path parameters

  • edit_id Required

Responses

  • 200

    Data versions of given edit

GET /data/edits/{edit_id}/versions
curl \
 --request GET 'http://api.example.com/data/edits/{edit_id}/versions' \
 --header "Authorization: $API_KEY"

Retrieve all edits related to a given episode.

GET /data/episodes/{episode_id}/edits

Path parameters

  • episode_id Required

Responses

  • 200

    All efits related to given episode

GET /data/episodes/{episode_id}/edits
curl \
 --request GET 'http://api.example.com/data/episodes/{episode_id}/edits' \
 --header "Authorization: $API_KEY"

















Retrieve all preview files linked to a given entity.

GET /data/entities/{entity_id}/preview-files

Path parameters

  • entity_id Required

Responses

  • 200

    All preview files linked to given entity

GET /data/entities/{entity_id}/preview-files
curl \
 --request GET 'http://api.example.com/data/entities/{entity_id}/preview-files' \
 --header "Authorization: $API_KEY"











































































Create new output file linked to assets through an instance of this asset for a given shot.

POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/new

Some output files are linked to assets through an instance of this asset for a given shot. Each time a CG artist is satisfied by what he did on a working file, he can create an output file that will be linked to a target instance. It keeps track of the working file at the origin of the output file. An output type is required for better categorization (textures, caches, ...). A task type can be set too to give the department related to the output file.

Path parameters

  • asset_instance_id Required
  • temporal_entity_id Required

Responses

  • 200

    New output file created

  • 400

    Given output file already exists Given person not found Given output type not found

POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/new
curl \
 --request POST 'http://api.example.com/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/new' \
 --header "Authorization: $API_KEY"




Get last revisions of output files for given instance grouped by output type and file name.

GET /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/last-revisions

Path parameters

  • asset_instance_id Required
  • temporal_entity_id Required

Query parameters

  • output_type_id Required
  • task_type_id Required
  • file_status_id Required
  • representation Required

Responses

  • 200

    Last revisions of output files for given instance grouped by output type and file name

GET /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/last-revisions
curl \
 --request GET 'http://api.example.com/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/last-revisions' \
 --header "Authorization: $API_KEY"












Get all working files for a given entity and possibly a task and a name.

GET /data/entities/{entity_id}/working-files

Path parameters

  • entity_id Required

Responses

  • 200

    All working files for given entity and possibly a task and a name

GET /data/entities/{entity_id}/working-files
curl \
 --request GET 'http://api.example.com/data/entities/{entity_id}/working-files' \
 --header "Authorization: $API_KEY"




































Download a working file.

GET /data/working-files/{working_file_id}/file

Path parameters

  • working_file_id Required

Responses

  • 200

    Working file downloaded

GET /data/working-files/{working_file_id}/file
curl \
 --request GET 'http://api.example.com/data/working-files/{working_file_id}/file' \
 --header "Authorization: $API_KEY"

















































Import shotgun resource.

POST /import/shotgun/status

Responses

  • 200

    Resource imported

POST /import/shotgun/status
curl \
 --request POST 'http://api.example.com/import/shotgun/status' \
 --header "Authorization: $API_KEY"












Import shotgun error resource.

GET /import/shotgun/errors

Responses

  • 200

    Resource imported

GET /import/shotgun/errors
curl \
 --request GET 'http://api.example.com/import/shotgun/errors' \
 --header "Authorization: $API_KEY"








Delete error.

DELETE /import/shotgun/errors/{error_id}

Path parameters

  • error_id Required

Responses

  • 204

    Error deleted

  • 404

    Error non-existant or Statement error

DELETE /import/shotgun/errors/{error_id}
curl \
 --request DELETE 'http://api.example.com/import/shotgun/errors/{error_id}' \
 --header "Authorization: $API_KEY"








Import remove instance.

POST /import/shotgun/remove/shot

Responses

  • 204

    Instance removed

POST /import/shotgun/remove/shot
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/shot' \
 --header "Authorization: $API_KEY"

Import remove instance.

POST /import/shotgun/remove/scene

Responses

  • 204

    Instance removed

POST /import/shotgun/remove/scene
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/scene' \
 --header "Authorization: $API_KEY"
































Import remove instance.

POST /import/shotgun/remove/version

Responses

  • 204

    Instance removed

POST /import/shotgun/remove/version
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/version' \
 --header "Authorization: $API_KEY"

Import persons via a .csv file.

POST /import/csv/persons

Responses

  • 201

    The lists of imported persons.

  • 400

    The .csv file is not properly formatted.

POST /import/csv/persons
curl \
 --request POST 'http://api.example.com/import/csv/persons' \
 --header "Authorization: $API_KEY"
































Import Kitsu resource.

POST /import/kitsu/comments

Responses

  • 200

    Resource imported

POST /import/kitsu/comments
curl \
 --request POST 'http://api.example.com/import/kitsu/comments' \
 --header "Authorization: $API_KEY"






















































Retrieve all news related to a given project

GET /data/projects/{project_id}/news

Path parameters

  • project_id Required

Query parameters

  • before
  • after
  • page
  • limit
  • person_id
  • task_type_id
  • task_status_id
  • episode_id
  • only_preview

Responses

  • 200

    All news related to given project

GET /data/projects/{project_id}/news
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/news' \
 --header "Authorization: $API_KEY"





























Get aggregated time spents for given person and month.

GET /data/persons/{person_id}/time-spents/month/{year}/{month}

Path parameters

  • person_id Required
  • year Required
  • month Required

Responses

  • 200

    Aggregated time spents for given person and month

  • 404

    Wrong date format

GET /data/persons/{person_id}/time-spents/month/{year}/{month}
curl \
 --request GET 'http://api.example.com/data/persons/{person_id}/time-spents/month/{year}/{month}' \
 --header "Authorization: $API_KEY"

















































































Retrieve all playlists related to given project.

GET /data/projects/{project_id}/playlists/all

It's mainly used for synchronisation purpose.

Path parameters

  • project_id Required

Responses

  • 200

    All playlists related to given project

GET /data/projects/{project_id}/playlists/all
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/playlists/all' \
 --header "Authorization: $API_KEY"




Retrieve all playlists related to given project.

GET /data/projects/{project_id}/playlists/{playlist_id}

Path parameters

  • project_id Required
  • playlist_id Required

Responses

  • 200

    All playlists related to given project

GET /data/projects/{project_id}/playlists/{playlist_id}
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/playlists/{playlist_id}' \
 --header "Authorization: $API_KEY"




















Download given playlist build as .mp4.

GET /data/playlists/{playlist_id}/jobs/{build_job_id}/build/mp4

Path parameters

  • playlist_id Required
  • build_job_id Required

Responses

  • 200

    Given playlist build downloaded as .mp4

  • 400

    Build not finished, need to retry later

GET /data/playlists/{playlist_id}/jobs/{build_job_id}/build/mp4
curl \
 --request GET 'http://api.example.com/data/playlists/{playlist_id}/jobs/{build_job_id}/build/mp4' \
 --header "Authorization: $API_KEY"









Retrieve all preview files from open productions with states equals to processing or broken.

GET /data/playlists/preview-files/running

Responses

  • 200

    All preview files from open productions with states equals to processing or broken

GET /data/playlists/preview-files/running
curl \
 --request GET 'http://api.example.com/data/playlists/preview-files/running' \
 --header "Authorization: $API_KEY"
































Download a generic file preview.

GET /pictures/originals/preview-files/{instance_id}.{extension}

Path parameters

  • instance_id Required
  • extension Required

Responses

  • 200

    Generic file preview downloaded

  • 403

    Instance not allowed

  • 404

    Non-movie file not found

GET /pictures/originals/preview-files/{instance_id}.{extension}
curl \
 --request GET 'http://api.example.com/pictures/originals/preview-files/{instance_id}.{extension}' \
 --header "Authorization: $API_KEY"

























































































































































Remove a preview background file from a production.

DELETE /data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}

Path parameters

  • project_id Required
  • preview_background_file_id Required

Responses

  • 204

    Empty response

DELETE /data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}' \
 --header "Authorization: $API_KEY"

Return preview background files linked to a production

GET /data/projects/{project_id}/settings/preview-background-files

Path parameters

  • project_id Required

Responses

  • 200

    Preview background files linked to production

GET /data/projects/{project_id}/settings/preview-background-files
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/settings/preview-background-files' \
 --header "Authorization: $API_KEY"
















Update a metadata descriptor.

PUT /data/projects/{project_id}/metadata-descriptors/{descriptor_id}

Descriptors serve to describe extra fields listed in the data attribute of entities.

Path parameters

  • project_id Required
  • descriptor_id Required

Responses

  • 200

    Metadata descriptor updated

PUT /data/projects/{project_id}/metadata-descriptors/{descriptor_id}
curl \
 --request PUT 'http://api.example.com/data/projects/{project_id}/metadata-descriptors/{descriptor_id}' \
 --header "Authorization: $API_KEY"
































Retrieve budgets for given production

GET /data/projects/{project_id}/budgets

Path parameters

  • project_id Required

Responses

  • 200

    All budgets of given production

GET /data/projects/{project_id}/budgets
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/budgets' \
 --header "Authorization: $API_KEY"


































































































































Retrieve given episode.

GET /data/episodes/{episode_id}

Path parameters

  • episode_id Required

Responses

  • 200

    Given episode

GET /data/episodes/{episode_id}
curl \
 --request GET 'http://api.example.com/data/episodes/{episode_id}' \
 --header "Authorization: $API_KEY"
































Retrieve all sequences, adds project name and asset type name and all related tasks.

GET /data/sequences/with-tasks

Query parameters

  • project_id

Responses

  • 200

    All sequences

GET /data/sequences/with-tasks
curl \
 --request GET 'http://api.example.com/data/sequences/with-tasks' \
 --header "Authorization: $API_KEY"








Retrieve all shot entries for a given sequence.

GET /data/sequences/{sequence_id}/shots

Filters can be specified in the query string.

Path parameters

  • sequence_id Required

Query parameters

  • project_id

Responses

  • 200

    All shot entries for given sequence

GET /data/sequences/{sequence_id}/shots
curl \
 --request GET 'http://api.example.com/data/sequences/{sequence_id}/shots' \
 --header "Authorization: $API_KEY"
































Retrieve all sequences related to a given project.

GET /data/projects/{project_id}/sequences

Path parameters

  • project_id Required

Responses

  • 200

    All sequences related to given project

GET /data/projects/{project_id}/sequences
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/sequences' \
 --header "Authorization: $API_KEY"