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 allow a user to disable TOTP.

DELETE /auth/totp

Responses

  • 200

    TOTP disabled

  • 400

    TOTP not enabled

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




















Resource to get a challenge for a FIDO device.

GET /auth/fido

Responses

  • 200

    Challenge for FIDO device.

  • 400

    Wrong parameter.

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

















































Retrieve all assets linked to given asset.

GET /data/assets/{asset_id}/assets

Path parameters

  • asset_id Required

Responses

  • 200

    All assets linked to given asset

GET /data/assets/{asset_id}/assets
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/assets' \
 --header "Authorization: $API_KEY"
































































Share or unshare all assets for given project and asset type.

POST /actions/projects/{project_id}/asset-types/{asset_type_id}/assets/share

Path parameters

  • project_id Required
  • asset_type_id Required
application/json

Body

  • is_shared boolean

    Default value is true.

Responses

  • 201

    All assets modified.

POST /actions/projects/{project_id}/asset-types/{asset_type_id}/assets/share
curl \
 --request POST 'http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/share' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"is_shared":true}'
Request examples
{
  "is_shared": true
}





























Resource to retrieve the casting of shots from given episode.

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

Path parameters

  • project_id Required
  • episode_id Required

Responses

  • 200

    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/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/sequences/all/casting' \
 --header "Authorization: $API_KEY"




























Add an asset instance to given shot.

POST /data/shots/{shot_id}/asset-instances

Path parameters

  • shot_id Required

Responses

  • 201

    Asset instance added to given shot

POST /data/shots/{shot_id}/asset-instances
curl \
 --request POST 'http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/asset-instances' \
 --header "Authorization: $API_KEY"








































































































































































Retrieve all entries for given model.

GET /data/entity-types

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

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




















































Retrieve all entries for given model.

GET /data/task-status

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

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
























Update a model with data given in the request body.

PUT /data/tasks/{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/tasks/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
























Create a model with data given in the request body.

POST /data/organisations

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

Responses

  • 200

    Model created

  • 400

    Error

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








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

DELETE /data/organisations/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 204

    Model deleted

  • 400

    Statement or integrity error

  • 404

    Instance non-existant

DELETE /data/organisations/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25' \
 --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/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"




















































































































































































Retrieve all entries for given model.

GET /data/schedule-items/

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

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




































































































































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

DELETE /data/chats/{instance_id}

Path parameters

  • instance_id Required

Responses

  • 204

    Model deleted

  • 400

    Statement or integrity error

  • 404

    Instance non-existant

DELETE /data/chats/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
































Update a model with data given in the request body.

PUT /data/preview-background-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/preview-background-files/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
















Update a model with data given in the request body.

PUT /data/studios/{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/studios/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"






















































































































Retrieve all edit entries.

GET /data/edits

Filters can be specified in the query string.

Query parameters

  • project_id
  • name
  • force

Responses

  • 200

    All edit entries

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







































































































Export as csv.

GET /export/csv/tasks.csv

Responses

  • 200

    Exported as csv

GET /export/csv/tasks.csv
curl \
 --request GET 'http://api.example.com/export/csv/tasks.csv' \
 --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/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/new' \
 --header "Authorization: $API_KEY"




































Return all types of output generated for given entity.

GET /data/entities/{entity_id}/output-types

Path parameters

  • entity_id Required

Responses

  • 200

    All types of output generated for given entity

GET /data/entities/{entity_id}/output-types
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types' \
 --header "Authorization: $API_KEY"








































Import








































































































































































































































































Get ended shots used for quota calculation of this day.

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

Path parameters

  • person_id Required
  • year Required
  • month Required
  • day Required

Query parameters

  • count_mode Required

Responses

  • 200

    Ended shots used for quota calculation of this day

  • 404

    Wrong date format

GET /data/persons/{person_id}/quota-shots/day/{year}/{month}/{day}
curl \
 --request GET 'http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/day/2022/7/12?count_mode=weighted' \
 --header "Authorization: $API_KEY"








































Add a user to given department.

POST /actions/persons/{person_id}/departments/add

Path parameters

  • person_id Required

Responses

  • 201

    User added to given department

POST /actions/persons/{person_id}/departments/add
curl \
 --request POST 'http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/add' \
 --header "Authorization: $API_KEY"













Retrieve all playlists related to given project.

GET /data/projects/{project_id}/playlists

Result is paginated and can be sorted.

Path parameters

  • project_id Required

Query parameters

  • page
  • sort_by
  • task_type_id

Responses

  • 200

    All playlists related to given project

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





















































Download a movie preview.

GET /movies/originals/preview-files/{instance_id}.mp4

It stores the preview file and generates three picture files matching preview when it's possible: a square thumbnail, a rectangle thumbnail and a midsize file.

Path parameters

  • instance_id Required

Responses

  • 200

    Movie preview downloaded

  • 403

    Instance not allowed

  • 404

    File not found

GET /movies/originals/preview-files/{instance_id}.mp4
curl \
 --request GET 'http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4' \
 --header "Authorization: $API_KEY"




































































Create a thumbnail for given object instance.

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

Path parameters

  • instance_id Required

Responses

  • 200

    Thumbnail created

  • 404

    Cannot found related object.

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

Path parameters

  • project_id Required

Responses

  • 200

    All metadata descriptors

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










































































































































Retrieve all tasks related to a given shot.

GET /data/shots/{shot_id}/tasks

Path parameters

  • shot_id Required

Responses

  • 200

    All tasks related to given shot

GET /data/shots/{shot_id}/tasks
curl \
 --request GET 'http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks' \
 --header "Authorization: $API_KEY"




































Mark given scene as source of given shot.

POST /data/scenes/{scene_id}/shots

Path parameters

  • scene_id Required
application/json

Body Required

  • shot_id string(uuid) Required

Responses

  • 200

    Given scene marked as source of given shot

POST /data/scenes/{scene_id}/shots
curl \
 --request POST 'http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"shot_id":"a24a6ea4-ce75-4665-a070-57453082c25"}'
Request examples
{
  "shot_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}




























Retrieve all tasks related to a given episode.

GET /data/episodes/{episode_id}/tasks

Path parameters

  • episode_id Required

Responses

  • 200

    All tasks related to given episode

GET /data/episodes/{episode_id}/tasks
curl \
 --request GET 'http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/tasks' \
 --header "Authorization: $API_KEY"





















































































































































































































Add a preview to given comment.

POST /actions/tasks/{task_id}/comments/{comment_id}/preview-files/{preview_file_id}

Path parameters

  • task_id string(uuid) Required
  • comment_id string(uuid) Required
  • preview_file_id string(uuid) Required
multipart/form-data

Body Required

  • file string(binary)

    Preview file to upload

Responses

  • 201 application/json

    Preview added to given comment

  • 400

    Bad request

  • 404

    Task, comment, or preview file not found

POST /actions/tasks/{task_id}/comments/{comment_id}/preview-files/{preview_file_id}
curl \
 --request POST 'http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: multipart/form-data" \
 --form "file=@file"
Response examples (201)
{}




























Set last preview from given task as main preview of the related entity.

PUT /actions/tasks/{task_id}/set-main-preview

This preview will be used as thumbnail to illustrate the entity.

Path parameters

  • preview_file_id string Required

Responses

  • 200

    Given preview set as main preview

PUT /actions/tasks/{task_id}/set-main-preview
curl \
 --request PUT 'http://api.example.com/actions/tasks/{task_id}/set-main-preview' \
 --header "Authorization: $API_KEY"

User













































































Return tasks currently assigned to current user and of which status has

GET /data/user/done-tasks

is_done attribute set to true. It returns only tasks of open projects.

Responses

  • 200 application/json

    Finished tasks currently assigned to current user

GET /data/user/done-tasks
curl \
 --request GET 'http://api.example.com/data/user/done-tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]

Allow to create and retrieve filters for current user and only for

GET /data/user/filters

open projects.

Responses

  • 200 application/json

    Filters for current user and only for open projects

GET /data/user/filters
curl \
 --request GET 'http://api.example.com/data/user/filters' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]
































Retrieve desktop login logs.

GET /data/user/desktop-login-logs

Responses

  • 200 application/json

    Desktop login logs

GET /data/user/desktop-login-logs
curl \
 --request GET 'http://api.example.com/data/user/desktop-login-logs' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]

Create a desktop login log. Desktop login logs can

POST /data/user/desktop-login-logs

only be created by the current user.

application/x-www-form-urlencoded

Body Required

  • date string(date)

Responses

  • 201 application/json

    Desktop login log created

  • 400

    Bad request

POST /data/user/desktop-login-logs
curl \
 --request POST 'http://api.example.com/data/user/desktop-login-logs' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/x-www-form-urlencoded" \
 --data 'date=2022-07-12'
Response examples (201)
{}








































































Mark all notifications as read for the current user.

POST /actions/user/notifications/mark-all-as-read

Responses

  • 200 application/json

    All notifications marked as read

    Hide response attribute Show response attribute object
    • success boolean
POST /actions/user/notifications/mark-all-as-read
curl \
 --request POST 'http://api.example.com/actions/user/notifications/mark-all-as-read' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "success": true
}