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"




Resource to allow a user to change his password when he forgets it.

POST /auth/reset-password

It uses a classic scheme: a token is sent by email to the user. Then he can change his password.

Responses

  • Reset token sent

  • Email not listed in database

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
















































































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

  • Modification of assets linked to given asset

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




































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












Retrieve all shared assets used in project episode.

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

Responses

  • All shared assets used in project episode

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













































Responses

  • All camera instances linked to scene

GET /data/scenes/{scene_id}/camera-instances
curl \
 --request GET 'http://api.example.com/data/scenes/{scene_id}/camera-instances' \
 --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"





















































































































































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

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








Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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












Retrieve all entries for given model.

GET /data/departments

Filters can be specified in the query string.

Responses

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
















































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








































































GET /data/time-spents/{instance_id}
curl \
 --request GET '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/custom-actions/

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

Responses

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




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




























Create a model with data given in the request body.

POST /data/playlists/

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

Responses

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




















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




Retrieve all entries for given model.

GET /data/notifications/

Filters can be specified in the query string.

Responses

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




Update a model with data given in the request body.

PUT /data/notifications/{instance_id}

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

Responses

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












































































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

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

Responses

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




























































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








Retrieve all salary scale entries.

GET /data/salary-scales

Retrieve all salary scale entries.

Responses

  • All salary scale entries

  • Permission denied

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




























Retrieve all entries for given model.

GET /data/plugins

Filters can be specified in the query string.

Responses

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

















Export casting linked to a given project as csv.

GET /export/csv/projects/{project_id}/casting.csv

Responses

  • Casting exported as csv

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

































Responses

  • Last working files revision for each file name for given task

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

Create new working file.

POST /data/tasks/{task_id}/working-files/new

A working file is a file used to produce output files. It is the file the CG artist is working on. It is versioned, tied to a task and a software and requires a comment each time it is created. A path is generated for each file created. The path format is defined in the file tree template file.

Path parameters

Responses

  • New working file created

  • Given working file already exists

POST /data/tasks/{task_id}/working-files/new
curl \
 --request POST 'http://api.example.com/data/tasks/{task_id}/working-files/new' \
 --header "Authorization: $API_KEY"

Responses

  • Last working files revision for each file name for given task

GET /data/tasks/{task_id}/working-files/last-revisions
curl \
 --request GET 'http://api.example.com/data/tasks/{task_id}/working-files/last-revisions' \
 --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

Responses

  • New output file created

  • 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 /data/entities/{entity_id}/output-files
curl \
 --request GET 'http://api.example.com/data/entities/{entity_id}/output-files' \
 --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/projectconnection

Responses

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

Import remove instance.

POST /import/shotgun/remove/step

Responses

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


































































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

































Get aggregated time spents for given person and month.

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

Responses

  • Aggregated time spents for given person and month

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
















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"






























































































































Download a thumbnail.

GET /pictures/thumbnails/preview-files/{instance_id}.png

Responses

  • Thumbnail downloaded

  • Instance not allowed

  • Picture file not found

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
















Download a generic file preview as attachment.

GET /pictures/originals/preview-files/{instance_id}/download

Responses

  • Generic file preview downloaded as attachment

  • Instance not allowed

  • Standard file not found

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

































































































Add a person to a production team.

POST /data/projects/{project_id}/team

Path parameters

Responses

  • Person added to the production team

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
























































Add a preview background file linked to a production.

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

Path parameters

Responses

  • Preview background file added to production

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




























Retrieve task type schedule items for given production

GET /data/projects/{project_id}/schedule-items/task-types

Responses

  • All task types schedule items of given production

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








Retrieve sequences schedule items for given task type

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

Responses

  • All sequences schedule items for given task type

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




Retrieve budgets for given production

GET /data/projects/{project_id}/budgets

Responses

  • 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"
POST /data/projects/{project_id}/budgets
curl \
 --request POST 'http://api.example.com/data/projects/{project_id}/budgets' \
 --header "Authorization: $API_KEY"






























































































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
































Retrieve all shots related to a given episode.

GET /data/episodes/{episode_id}/shots

Responses

  • All shots related to given episode

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