Authentication

Jwt authorization (http_api_key)

Format in header: Authorization: Bearer {token}.

Value example: Bearer xxxxx.yyyyy.zzzzz














Responses

  • Registration successful

  • Invalid password or email

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




















Responses

  • OTP by email enabled

  • Invalid password Wrong or expired token Inactive user

PUT /auth/email-otp
curl \
 --request PUT '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"






































































































































































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"












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









































Responses

  • All attachment files related to given task

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




Create several comments at once.

POST /actions/projects/{project_id}/tasks/comment-many

Each comment requires a text, a task id, a task_status and a person as arguments. This way, comments keep history of status changes. When the comment is created, it updates the task status with given task status.

Path parameters

Responses

  • Given files added to the comment entry as attachments

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

































































Retrieve all entries for given model.

GET /data/entity-types

Filters can be specified in the query string.

Responses

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












































Update a model with data given in the request body.

PUT /data/task-types/{instance_id}

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

Responses

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




















































































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

Update a model with data given in the request body.

PUT /data/file-status/{instance_id}

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

Responses

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

Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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




























Responses

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
























Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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
































































Create a model with data given in the request body.

POST /data/comments

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

Responses

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
























































































































































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
















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

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

Responses

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




















Retrieve all entries for given model.

GET /data/preview-background-files

Filters can be specified in the query string.

Responses

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

























































































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























































Export assets linked to a given project as csv.

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

Responses

  • Assets exported as csv

GET /export/csv/projects/{project_id}/assets.csv
curl \
 --request GET 'http://api.example.com/export/csv/projects/{project_id}/assets.csv' \
 --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/tasks.csv

Responses

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

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"

































































































Responses

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
































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




























































































Import an OTIO file to enter frame_in / frame_out / nb_frames (it can

POST /import/otio/projects/{project_id}/episodes/{episode_id}

be every adapter supported by OpenTimelineIO, for example: edl, otio...
).

Path parameters

Responses

  • .

  • The .otio file is not properly formatted.

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




























































































































































































































Responses

  • All preview files from open productions with states equals to processing or broken

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









































































































































































Remove a preview background file from a production.

DELETE /data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}

Responses

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
































Retrieve schedule items for given production

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

Responses

  • All schedule items of given production

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





























































Responses

  • List of entities that contain the query

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

























































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












Path parameters

Responses

  • Given scene marked as source of given shot

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





























































































































































































































Get time spent on a given task and date.

GET /actions/tasks/{task_id}/time-spents/{date}

Responses

  • Time spent on given task and date

  • Wrong date format

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








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

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

Responses

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

  • Wrong date format

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