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"
























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 sent

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




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 /data/asset-types
curl \
 --request GET 'http://api.example.com/data/asset-types' \
 --header "Authorization: $API_KEY"
GET /data/asset-types/{asset_type_id}
curl \
 --request GET 'http://api.example.com/data/asset-types/{asset_type_id}' \
 --header "Authorization: $API_KEY"




































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
































Responses

  • All asset types of assets casted in given shot

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





























































Responses

  • All asset instances linked to given scene

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

Create an asset instance on given scene.

POST /data/scenes/{scene_id}/asset-instances

Path parameters

Responses

  • Asset instances created on given scene

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

































Download attachment file.

GET /data/attachment-files/{attachment_file_id}/file/{file_name}

Responses

  • Attachment file downloaded

  • Download failed

GET /data/attachment-files/{attachment_file_id}/file/{file_name}
curl \
 --request GET 'http://api.example.com/data/attachment-files/{attachment_file_id}/file/{file_name}' \
 --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"

























Create a model with data given in the request body.

POST /data/projects

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

Responses

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




































Create a model with data given in the request body.

POST /data/entity-types

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

Responses

POST /data/entity-types
curl \
 --request POST 'http://api.example.com/data/entity-types' \
 --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"








Retrieve all entries for given model.

GET /data/entities

Filters can be specified in the query string.

Responses

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












































Update a model with data given in the request body.

PUT /data/task-status/{instance_id}

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

Responses

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

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
























Responses

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




























Retrieve all entries for given model.

GET /data/output-types

Filters can be specified in the query string.

Responses

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




























Update a model with data given in the request body.

PUT /data/preview-files/{instance_id}

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

Responses

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




























































Retrieve all entries for given model.

GET /data/time-spents/

Filters can be specified in the query string.

Responses

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
































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

DELETE /data/day-offs/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/day-offs/{instance_id}' \
 --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"
































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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

Retrieve all entries for given model.

GET /data/events/

Filters can be specified in the query string.

Responses

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








Update a model with data given in the request body.

PUT /data/events/{instance_id}

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

Responses

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




























































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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




















































Update a model with data given in the request body.

PUT /data/milestones/{instance_id}

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

Responses

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




Retrieve all entries for given model.

GET /data/metadata-descriptors/

Filters can be specified in the query string.

Responses

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
















Retrieve all entries for given model.

GET /data/subscriptions/

Filters can be specified in the query string.

Responses

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

Create a model with data given in the request body.

POST /data/subscriptions/

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

Responses

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












































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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












































Create a model with data given in the request body.

POST /data/studios

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

Responses

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
















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"

























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

































Responses

  • All time spents linked to given entity

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






















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








Export as csv.

GET /export/csv/projects.csv

Responses

GET /export/csv/projects.csv
curl \
 --request GET 'http://api.example.com/export/csv/projects.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"





























Get next revision for given asset instance, output type, task type and name.

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

Path parameters

Responses

  • Next revision for given asset instance, output type, task type and name

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












































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

Responses

  • All output files for given asset instance and given temporal entity (shot, sequence, etc.)

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













































Responses

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

Responses

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








Responses

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








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}

Responses

  • Error deleted

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

Responses

POST /import/shotgun/remove/project
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/project' \
 --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"

Import remove instance.

POST /import/shotgun/remove/task

Responses

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
































Import the estimations of task-types for given episode of given project.

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

Path parameters

Responses

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

























































Responses

  • Configuration object including self-hosted status, Crisp token, indexer configuration, SAML status, and dark theme status.

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




















































































Allow admin to disable two factor authentication for given user.

DELETE /actions/persons/{person_id}/disable-two-factor-authentication

Prior to disable two factor authentication, it requires to be admin. An admin can't disable two factor authentication for other admins.

Responses

  • Two factor authentication disabled

  • Inactive user

DELETE /actions/persons/{person_id}/disable-two-factor-authentication
curl \
 --request DELETE 'http://api.example.com/actions/persons/{person_id}/disable-two-factor-authentication' \
 --header "Authorization: $API_KEY"

Retrieve all playlists related to given project.

GET /data/projects/{project_id}/playlists

Result is paginated and can be sorted.

Responses

  • All playlists related to given project

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




















Remove given build job related to given playlist.

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

Responses

  • Given build job removed

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












Download given playlist as zip.

GET /data/playlists/{playlist_id}/download/zip

Responses

  • Given playlist downloaded as zip

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





























Download the thumbnail representing given attachment file.

GET /pictures/thumbnails/attachment-files/{attachment_file_id}.png

Responses

  • Thumbnail downloaded

  • Instance not allowed

  • Picture file not found

GET /pictures/thumbnails/attachment-files/{attachment_file_id}.png
curl \
 --request GET 'http://api.example.com/pictures/thumbnails/attachment-files/{attachment_file_id}.png' \
 --header "Authorization: $API_KEY"

























































































































































Get a status automation linked to a production.

GET /data/projects/{project_id}/settings/status-automations

Responses

  • Status automation linked to production

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

Add a status automation linked to a production.

POST /data/projects/{project_id}/settings/status-automations

Path parameters

Responses

  • Status automation added to production

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
















Get all metadata descriptors

GET /data/projects/{project_id}/metadata-descriptors

It serves to describe extra fields listed in the data attribute of entities.

Responses

  • All metadata descriptors

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
































Retrieve episodes schedule items for given task type

GET /data/projects/{project_id}/schedule-items/{task_type_id}/episodes

Responses

  • All episodes schedule items for given task type

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






























































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




























Responses

  • Data versions of given shot

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
































Delete given shot from given scene.

DELETE /data/scenes/{scene_id}/shots/{shot_id}

Responses

  • Given shot deleted from given scene

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




























Responses

  • All task types related to given episode

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








Retrieve all sequence entries.

GET /data/sequences

Filters can be specified in the query string.

Responses

  • All sequence entries

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












Responses

  • All scenes related to given sequence

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
































Create a sequence for given project.

POST /data/projects/{project_id}/sequences

Path parameters

Responses

  • Sequence created for given project

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

Responses

  • All episodes related to given project

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

























































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












Retrieve all notifications to tasks related to given project.

GET /data/projects/{project_id}/notifications

It's mainly used for synchronisation purpose.

Responses

  • All notifications to tasks related to given project

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




















































Add given timeframe to time spent by a person on a task for a given day.

POST /actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}/add

Path parameters

Responses

  • Given timeframe added to time spent by given person on given task for given day

  • Wrong date format

POST /actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}/add
curl \
 --request POST 'http://api.example.com/actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}/add' \
 --header "Authorization: $API_KEY"




















Create a new task for given asset and task type.

POST /actions/projects/{project_id}/task-types/{task_type_id}/assets/create-tasks

Path parameters

Responses

  • New task for given asset and task type created

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