Retrieve all entries for given model.
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/output-types' \
--header "Authorization: $API_KEY"
http://api.example.com
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
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.
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"
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"
curl \
--request POST 'http://api.example.com/actions/assets/share' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/episodes/{episode_id}/assets/shared-used' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/shots/{shot_id}/asset-instances/{asset_instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/project-status' \
--header "Authorization: $API_KEY"
JSON format is expected. Model performs the validation automatically when fields are modified.
curl \
--request PUT 'http://api.example.com/data/project-status/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/entity-types' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/organisations' \
--header "Authorization: $API_KEY"
JSON object.
curl \
--request GET 'http://api.example.com/data/softwares/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/output-types' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/output-types/{instance_id}' \
--header "Authorization: $API_KEY"
JSON format is expected. Model performs the validation automatically when fields are modified.
curl \
--request PUT 'http://api.example.com/data/playlists/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/schedule-items/' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/chats/{instance_id}' \
--header "Authorization: $API_KEY"
JSON format is expected. Model performs the validation automatically when fields are modified.
curl \
--request PUT 'http://api.example.com/data/studios/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/edits' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/entities/{entity_id}/preview-files' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/export/csv/time-spents.csv' \
--header "Authorization: $API_KEY"
Generate file path based on several parameters: entity, output type, task type, revision, mode, name and separator. Revision can be computed automatically as next revision if not given.
curl \
--request POST 'http://api.example.com/data/entities/{entity_id}/output-file-path' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/notes' \
--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/data/persons/time-spents/week-table/{year}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/time-spents/day-table/{year}/{month}' \
--header "Authorization: $API_KEY"
It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.
curl \
--request GET 'http://api.example.com/data/playlists/entities/{entity_id}/preview-files' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/playlists/{playlist_id}/jobs/{build_job_id}/build/mp4' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/playlists/{playlist_id}/download/zip' \
--header "Authorization: $API_KEY"
Most of the time, past projects are not needed.
curl \
--request GET 'http://api.example.com/data/projects/open' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/data/search' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/shots/{shot_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/shots/{shot_id}/assets' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/episodes/{episode_id}/shot-tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/episodes/{episode_id}/asset-tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/sequences/{sequence_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/scenes' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/tasks/{task_id}/comments/{comment_id}' \
--header "Authorization: $API_KEY"
is_done attribute set to false.
curl \
--request GET 'http://api.example.com/data/user/tasks' \
--header "Authorization: $API_KEY"
If the user is not a supervisor, it returns an empty list.
curl \
--request GET 'http://api.example.com/data/user/tasks-to-check' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/filter-groups' \
--header "Authorization: $API_KEY"
curl \
--request PUT 'http://api.example.com/data/user/filter-groups/{filter_group_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/tasks/{task_id}/subscribed' \
--header "Authorization: $API_KEY"
subscribed for given task type.
curl \
--request GET 'http://api.example.com/data/user/projects/{project_id}/task-types/{task_type_id}/sequence-subscriptions' \
--header "Authorization: $API_KEY"
ID of the entity related to the chat
curl \
--request POST 'http://api.example.com/data/entities/{entity_id}/chat/messages' \
--header "Authorization: $API_KEY"