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

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












Allow the user to change his password.

POST /auth/change-password

Prior to modifying the password, it requires to give the current password (to make sure the user changing the password is not someone who stealed the session). The new password requires a confirmation to ensure that the user didn't make a mistake by typing his new password.

Responses

  • Password changed

  • Invalid password or inactive user

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








Tokens are considered as outdated every two weeks.

GET /auth/refresh-token

This route allows to make their lifetime long before they get outdated.

Responses

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




















Responses

  • OTP by email enabled

  • Invalid password Wrong or expired token Inactive user

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








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

Responses

  • FIDO device pre-registered.

  • Invalid password Wrong or expired token Inactive user

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




Responses

  • FIDO device unregistered.

  • Invalid password Wrong or expired token Inactive user Wrong 2FA

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




Responses

  • Redirect to the SAML IDP.

  • Wrong parameter.

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









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




















Responses

  • All tasks related to given asset

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

Responses

  • All task types of tasks related to given asset

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
















Responses

  • All scene asset instances linked to given asset

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








Retrieve all assets for given project and asset type.

GET /data/projects/{project_id}/asset-types/{asset_type_id}/assets

Responses

  • All assets for given project and asset type

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
















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





















Resource to allow the modification of assets linked to an entity.

PUT /data/projects/{project_id}/entities/{entity_id}/casting

Responses

  • Modification of assets linked to an entity

PUT /data/projects/{project_id}/entities/{entity_id}/casting
curl \
 --request PUT 'http://api.example.com/data/projects/{project_id}/entities/{entity_id}/casting' \
 --header "Authorization: $API_KEY"












Resource to retrieve the casting of shots from given episode.

GET /data/projects/{project_id}/episodes/{episode_id}/sequences/all/casting

Responses

  • Casting for all shots from given episode.

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

Resource to retrieve the casting of shots from all sequences of given

GET /data/projects/{project_id}/sequences/all/casting

project.

Responses

  • Casting for all shots from given project.

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

Retrieve all entity links related to given project.

GET /data/projects/{project_id}/entity-links


Results can be paginated using page and limit query parameters. If you
prefer a more accurate pagination, you can use and
cursor_created_at to get the next page.

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
















Responses

  • All assets linked to shot

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




Remove an asset instance from given shot.

DELETE /data/shots/{shot_id}/asset-instances/{asset_instance_id}

Responses

  • Asset instance removed from given shot

DELETE /data/shots/{shot_id}/asset-instances/{asset_instance_id}
curl \
 --request DELETE 'http://api.example.com/data/shots/{shot_id}/asset-instances/{asset_instance_id}' \
 --header "Authorization: $API_KEY"




Reply to given comment.

POST /data/tasks/{task_id}/comments/{comment_id}/reply

Add comment to its replies list.

Path parameters

Responses

  • Reply to given comment

POST /data/tasks/{task_id}/comments/{comment_id}/reply
curl \
 --request POST 'http://api.example.com/data/tasks/{task_id}/comments/{comment_id}/reply' \
 --header "Authorization: $API_KEY"




Delete given comment reply.

DELETE /data/tasks/{task_id}/comments/{comment_id}/reply/{reply_id}

Responses

  • Given comment reply deleted

DELETE /data/tasks/{task_id}/comments/{comment_id}/reply/{reply_id}
curl \
 --request DELETE 'http://api.example.com/data/tasks/{task_id}/comments/{comment_id}/reply/{reply_id}' \
 --header "Authorization: $API_KEY"
























Creates new comments for given task. Each comments requires a text, a

POST /actions/tasks/{task_id}/batch-comment

task_status and a person as arguments.

Path parameters

Responses

  • New comments created

POST /actions/tasks/{task_id}/batch-comment
curl \
 --request POST 'http://api.example.com/actions/tasks/{task_id}/batch-comment' \
 --header "Authorization: $API_KEY"

















































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
















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




Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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
























































Retrieve all entries for given model.

GET /data/tasks

Filters can be specified in the query string.

Responses

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
















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
















GET /data/organisations/{instance_id}
curl \
 --request GET 'http://api.example.com/data/organisations/{instance_id}' \
 --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

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
















Create a model with data given in the request body.

POST /data/softwares

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

Responses

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








Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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
















Responses

  • Model deleted

  • Statement or integrity error

  • 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"
























Create a model with data given in the request body.

POST /data/preview-files

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

Responses

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




















































































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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




































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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

Retrieve all entries for given model.

GET /data/status-automations/

Filters can be specified in the query string.

Responses

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












Retrieve all entries for given model.

GET /data/asset-instances/

Filters can be specified in the query string.

Responses

GET /data/asset-instances/
curl \
 --request GET 'http://api.example.com/data/asset-instances/' \
 --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

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




















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

Update a model with data given in the request body.

PUT /data/playlists/{instance_id}

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

Responses

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




























Create a model with data given in the request body.

POST /data/notifications/

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

Responses

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








Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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




















Retrieve all entries for given model.

GET /data/search-filter-groups/

Filters can be specified in the query string.

Responses

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

Create a model with data given in the request body.

POST /data/search-filter-groups/

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

Responses

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












Retrieve all entries for given model.

GET /data/schedule-items/

Filters can be specified in the query string.

Responses

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




































Retrieve all entries for given model.

GET /data/milestones/

Filters can be specified in the query string.

Responses

GET /data/milestones/
curl \
 --request GET 'http://api.example.com/data/milestones/' \
 --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

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
























































































































Responses

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




Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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
































Update a model with data given in the request body.

PUT /data/salary-scales/{instance_id}

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

Responses

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

Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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












Create a model with data given in the request body.

POST /data/plugins

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

Responses

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





























Retrieve all previews related to a given edit.

GET /data/edits/{edit_id}/preview-files

It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.

Responses

  • All previews related to given edit

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




Responses

  • 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"




Responses

  • All edits related to given project

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

Create an edit for given project.

POST /data/projects/{project_id}/edits

Path parameters

Responses

  • Edit created for given project

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



















































Export as csv.

GET /export/csv/tasks.csv

Responses

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

Export as csv.

GET /export/csv/time-spents.csv

Responses

GET /export/csv/time-spents.csv
curl \
 --request GET 'http://api.example.com/export/csv/time-spents.csv' \
 --header "Authorization: $API_KEY"













































Generate an output file path from file tree template

POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-file-path

Generate file path based on several parameters: asset instance, output type, task type, revision, mode, name and separator. Revision can be computed automatically as next revision in case no revision is given in parameter.

Path parameters

Responses

  • Output file path generated

  • Malformed file tree

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

Responses

  • 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"








Responses

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

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








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








Generate an output file path from file tree template

POST /data/entities/{entity_id}/output-file-path

Generate file path based on several parameters: entity, output type, task type, revision, mode, name and separator. Revision can be computed automatically as next revision if not given.

Path parameters

Responses

  • Output file path generated

  • Malformed file tree

POST /data/entities/{entity_id}/output-file-path
curl \
 --request POST 'http://api.example.com/data/entities/{entity_id}/output-file-path' \
 --header "Authorization: $API_KEY"

Download a working file.

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

Responses

  • 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/sequences

Responses

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

Responses

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












Responses

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
















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












































Import remove instance.

POST /import/shotgun/remove/status

Responses

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












Responses

  • The lists of imported persons.

  • 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 project assets via a .csv file.

POST /import/csv/projects/{project_id}/assets

Path parameters

Responses

  • The lists of imported assets.

  • The .csv file is not properly formatted.

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












Import the estimations of task-types for given project.

POST /import/csv/projects/{project_id}/task-types/{task_type_id}/estimations

Path parameters

Responses

POST /import/csv/projects/{project_id}/task-types/{task_type_id}/estimations
curl \
 --request POST 'http://api.example.com/import/csv/projects/{project_id}/task-types/{task_type_id}/estimations' \
 --header "Authorization: $API_KEY"












Responses

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










































































Get time spents for given person and date.

GET /data/persons/{person_id}/time-spents/{date}

Responses

  • Time spents for given person and date

  • Wrong date format

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




Get aggregated time spents for given person and year.

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

Responses

  • Aggregated time spents for given person and year

  • Wrong date format

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




















Get ended shots used for quota calculation of this day.

GET /data/persons/{person_id}/quota-shots/day/{year}/{month}/{day}

Path parameters

Responses

  • Ended shots used for quota calculation of this day

  • Wrong date format

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












Responses

  • Table giving time spent by user and by day for given year and month

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
































Allow admin to change password for given user.

POST /actions/persons/{person_id}/change-password

Prior to modifying the password, it requires to be admin. An admin can't change other admins password. The new password requires a confirmation to ensure that the admin didn't make a mistake by typing the new password.

Path parameters

Responses

  • Password changed

  • Invalid password or inactive user

POST /actions/persons/{person_id}/change-password
curl \
 --request POST 'http://api.example.com/actions/persons/{person_id}/change-password' \
 --header "Authorization: $API_KEY"

























Retrieve build job related to given playlist.

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

Responses

  • Build job related to given playlist

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