curl \
--request GET 'http://api.example.com/export/csv/time-spents.csv' \
--header "Authorization: $API_KEY"
Kitsu API
0.20.44
http://api.example.com
Welcome to the Kitsu API specification
Version: 0.20.44
The Kitsu API allows to store and manage the data of your animation/VFX production. Through it you can link all the tools of your pipeline and make sure they are all synchronized.
An easy to use Python client to access this API is available: Python Kitsu Client documentation
Authentication
Before you can use any of the endpoints outline below, you will have to get a JWT token to authorize your requests.
You will find the information to retrieve it in the Zou documentation.
This is version 0.20.44
of this API documentation.
Last update on May 20, 2025.
This API is provided under license AGPL 3.0.
Log in user by creating and registering auth tokens.
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.
curl \
--request POST 'http://api.example.com/auth/login' \
--header "Authorization: $API_KEY"
Retrieve all entities that are not shot, sequence, episode, or edit.
Adds project name and asset type name and all related tasks.
If episode_id is given as parameter, it returns assets not linked
to an episode and assets linked to given episode.
curl \
--request GET 'http://api.example.com/data/assets/with-tasks' \
--header "Authorization: $API_KEY"
Create new asset with given parameters.
Path parameters
-
project_id
Required -
asset_type_id
Required
curl \
--request POST 'http://api.example.com/data/projects/{project_id}/asset-types/{asset_type_id}/assets/new' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/actions/assets/share' \
--header "Authorization: $API_KEY"
Retrieve all shared assets used in project episode.
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/episodes/{episode_id}/assets/shared-used' \
--header "Authorization: $API_KEY"
Remove an asset instance from given shot.
Path parameters
-
shot_id
Required -
asset_instance_id
Required
curl \
--request DELETE 'http://api.example.com/data/shots/{shot_id}/asset-instances/{asset_instance_id}' \
--header "Authorization: $API_KEY"
Retrieve a model corresponding at given ID and return it as a JSON object.
Path parameters
-
instance_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{instance_id}' \
--header "Authorization: $API_KEY"
Retrieve all entries for given model.
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/project-status' \
--header "Authorization: $API_KEY"
Update a model with data given in the request body.
JSON format is expected. Model performs the validation automatically when fields are modified.
Path parameters
-
instance_id
Required
curl \
--request PUT 'http://api.example.com/data/project-status/{instance_id}' \
--header "Authorization: $API_KEY"
Retrieve all entries for given model.
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/day-offs/' \
--header "Authorization: $API_KEY"
Create a model with data given in the request body.
JSON format is expected. The model performs the validation automatically when instantiated.
curl \
--request POST 'http://api.example.com/data/day-offs/' \
--header "Authorization: $API_KEY"
Create a model with data given in the request body.
JSON format is expected. The model performs the validation automatically when instantiated.
curl \
--request POST 'http://api.example.com/data/status-automations/' \
--header "Authorization: $API_KEY"
Retrieve all entries for given model.
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/search-filters/' \
--header "Authorization: $API_KEY"
Retrieve a model corresponding at given ID and return it as a JSON object.
Path parameters
-
instance_id
Required
curl \
--request GET 'http://api.example.com/data/news/{instance_id}' \
--header "Authorization: $API_KEY"
Update a model with data given in the request body.
JSON format is expected. Model performs the validation automatically when fields are modified.
Path parameters
-
instance_id
Required
curl \
--request PUT 'http://api.example.com/data/milestones/{instance_id}' \
--header "Authorization: $API_KEY"
Retrieve a model corresponding at given ID and return it as a JSON object.
Path parameters
-
instance_id
Required
curl \
--request GET 'http://api.example.com/data/subscriptions/{instance_id}' \
--header "Authorization: $API_KEY"
Delete a model corresponding at given ID and return it as a JSON object.
Path parameters
-
instance_id
Required
curl \
--request DELETE 'http://api.example.com/data/preview-background-files/{instance_id}' \
--header "Authorization: $API_KEY"
Delete a model corresponding at given ID and return it as a JSON object.
Path parameters
-
instance_id
Required
curl \
--request DELETE 'http://api.example.com/data/salary-scales/{instance_id}' \
--header "Authorization: $API_KEY"
Retrieve all entries for given model.
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/plugins' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/edits/all' \
--header "Authorization: $API_KEY"
Create new working file.
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
-
task_id
Required
curl \
--request POST 'http://api.example.com/data/tasks/{task_id}/working-files/new' \
--header "Authorization: $API_KEY"
Get last revisions of output files for given instance grouped by output type and file name.
Path parameters
-
asset_instance_id
Required -
temporal_entity_id
Required
Query parameters
-
output_type_id
Required -
task_type_id
Required -
file_status_id
Required -
representation
Required
curl \
--request GET 'http://api.example.com/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/last-revisions' \
--header "Authorization: $API_KEY"
Get all output files for given poject.
Path parameters
-
project_id
Required
Query parameters
-
output_type_id
Required -
task_type_id
Required -
file_status_id
Required -
representation
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/output-files' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/remove/asset' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/' \
--header "Authorization: $API_KEY"
Retrieve a single given news related to a given project
Path parameters
-
project_id
Required -
news_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/news/{news_id}' \
--header "Authorization: $API_KEY"
Remove a user from given department.
Path parameters
-
person_id
Required -
department_id
Required
curl \
--request DELETE 'http://api.example.com/actions/persons/{person_id}/departments/{department_id}' \
--header "Authorization: $API_KEY"
Path parameters
-
instance_id
Required
curl \
--request GET 'http://api.example.com/pictures/previews/preview-files/{instance_id}.png' \
--header "Authorization: $API_KEY"
Return all projects listed in database.
Ensure that user has at least the manager level before that.
curl \
--request GET 'http://api.example.com/data/projects/all' \
--header "Authorization: $API_KEY"
Path parameters
-
project_id
Required
curl \
--request POST 'http://api.example.com/data/projects/{project_id}/team' \
--header "Authorization: $API_KEY"
Get all metadata descriptors
It serves to describe extra fields listed in the data attribute of entities.
Path parameters
-
project_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/metadata-descriptors' \
--header "Authorization: $API_KEY"
Delete a metadata descriptor.
Descriptors serve to describe extra fields listed in the data attribute of entities.
Path parameters
-
project_id
Required -
descriptor_id
Required
curl \
--request DELETE 'http://api.example.com/data/projects/{project_id}/metadata-descriptors/{descriptor_id}' \
--header "Authorization: $API_KEY"
Retrieve time spents for given production
Path parameters
-
project_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/time-spents' \
--header "Authorization: $API_KEY"
Delete a budget for given production
Path parameters
-
project_id
Required -
budget_id
Required
curl \
--request DELETE 'http://api.example.com/data/projects/{project_id}/budgets/{budget_id}' \
--header "Authorization: $API_KEY"
Retrieve all scenes related to a given project.
Path parameters
-
project_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/scenes' \
--header "Authorization: $API_KEY"
Retrieve all subcriptions to tasks related to given project.
It's mainly used for synchronisation purpose.
Path parameters
-
project_id
Required
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/subscriptions' \
--header "Authorization: $API_KEY"
Add given timeframe to time spent by a person on a task for a given day.
curl \
--request POST 'http://api.example.com/actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}/add' \
--header "Authorization: $API_KEY"
Return shots related to given sequence if the current user has access
to it.
Path parameters
-
sequence_id
Required
curl \
--request GET 'http://api.example.com/data/user/sequences/{sequence_id}/shots' \
--header "Authorization: $API_KEY"
Return true if current user has subscribed to given sequence and
task type.
Path parameters
-
sequence_id
Required -
task_type_id
Required
curl \
--request GET 'http://api.example.com/data/user/entities/{sequence_id}/task-types/{task_type_id}/subscribed' \
--header "Authorization: $API_KEY"
Create a subscription entry for given sequence,
task type and current user.
Path parameters
-
sequence_id
Required -
task_type_id
Required
curl \
--request POST 'http://api.example.com/actions/user/sequences/{sequence_id}/task-types/{task_type_id}/subscribe' \
--header "Authorization: $API_KEY"