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 disabled.

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

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

Responses

  • new recovery codes.

  • Invalid password Wrong or expired token Inactive user

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













































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




























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.

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

Responses

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





Resource to retrieve the casting of a given entity.

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

Responses

  • Casting of given entity

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




Resource to retrieve the casting of assets from given asset type.

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

Responses

  • Casting of assets from given asset type

GET /data/projects/{project_id}/asset-types/{asset_type_id}/casting
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/asset-types/{asset_type_id}/casting' \
 --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"




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"

















Delete attachment linked to a comment matching given ID.

DELETE /data/tasks/{task_id}/comments/{comment_id}/attachments/{attachment_id}

Responses

DELETE /data/tasks/{task_id}/comments/{comment_id}/attachments/{attachment_id}
curl \
 --request DELETE 'http://api.example.com/data/tasks/{task_id}/comments/{comment_id}/attachments/{attachment_id}' \
 --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"

Update a model with data given in the request body.

PUT /data/project-status/{instance_id}

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

Responses

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












































































































































































































































































































































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

































































































































































































































































































































































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 tasks related to given episode

GET /data/episodes/{episode_id}/edit-tasks
curl \
 --request GET 'http://api.example.com/data/episodes/{episode_id}/edit-tasks' \
 --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/task-types.csv

Responses

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

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

Create new output file linked to a given entity.

POST /data/entities/{entity_id}/output-files/new

Output files are linked to entities. 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 entity (an asset, a shot, a sequence, ...). 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. Revision is automatically set.

Path parameters

Responses

  • New output file created

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

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

























































Responses

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

Responses

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




















































































Responses

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






















































































































































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
















Download a thumbnail.

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

Responses

  • Thumbnail downloaded

  • Instance not allowed

  • Picture file not found

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
































Create a thumbnail for given object instance.

POST /pictures/thumbnails/persons/{instance_id}.png

Path parameters

Responses

  • Thumbnail created

  • Cannot found related object.

POST /pictures/thumbnails/persons/{instance_id}.png
curl \
 --request POST 'http://api.example.com/pictures/thumbnails/persons/{instance_id}.png' \
 --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.

Responses

  • 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 time spents for given production

GET /data/projects/{project_id}/time-spents

Responses

  • All time spents of given production

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












Update a budget name for given production

PUT /data/projects/{project_id}/budgets/{budget_id}

Responses

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














































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




























































Retrieve all episode entries.

GET /data/episodes

Filters can be specified in the query string.

Responses

  • All episode entries

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












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"













































































































































































































Set time spent by a person on a task for a given day.

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

Path parameters

Responses

  • Time spent by given person on given task for given day is set

  • Wrong date format

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