Path parameters
-
concept_id
Required
curl \
--request DELETE 'http://api.example.com/data/concepts/{concept_id}' \
--header "Authorization: $API_KEY"
http://api.example.com
Version: 0.20.55
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.55
of this API documentation.
Last update on Jun 17, 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"
curl \
--request GET 'http://api.example.com/auth/fido' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/asset-types' \
--header "Authorization: $API_KEY"
Adds project name and asset type name.
curl \
--request GET 'http://api.example.com/data/assets' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/assets/{asset_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/assets/{asset_id}/tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/assets/{asset_id}/task-types' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/assets/{asset_id}/scene-asset-instances' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/actions/projects/{project_id}/asset-types/{asset_type_id}/assets/share' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/episodes/{episode_id}/sequences/all/casting' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/scenes/{scene_id}/asset-instances' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/{instance_id}' \
--header "Authorization: $API_KEY"
JSON format is expected. The model performs the validation automatically when instantiated.
curl \
--request POST 'http://api.example.com/data/project-status' \
--header "Authorization: $API_KEY"
curl \
--request GET '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"
curl \
--request GET 'http://api.example.com/data/tasks' \
--header "Authorization: $API_KEY"
JSON format is expected. The model performs the validation automatically when instantiated.
curl \
--request POST 'http://api.example.com/data/departments' \
--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/departments/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/departments/{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/file-status/{instance_id}' \
--header "Authorization: $API_KEY"
JSON object.
curl \
--request GET 'http://api.example.com/data/output-types/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/attachment-files' \
--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/attachment-files/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/attachment-files/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/day-offs/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/asset-instances/' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/events/' \
--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/events/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/search-filters/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/search-filter-groups/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/news/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/milestones/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/metadata-descriptors/{instance_id}' \
--header "Authorization: $API_KEY"
Filters can be specified in the query string.
curl \
--request GET 'http://api.example.com/data/subscriptions/' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/chats/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/chat-messages/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/preview-background-files/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/plugins/{instance_id}' \
--header "Authorization: $API_KEY"
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"
curl \
--request DELETE 'http://api.example.com/data/edits/{edit_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/episodes/{episode_id}/edits' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/edits' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/export/csv/projects/{project_id}/shots.csv' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/export/csv/projects.csv' \
--header "Authorization: $API_KEY"
Generate file path based on several parameters: task, software, mode, revision and separator. Revision can be computed automatically as next revision if not given.
curl \
--request POST 'http://api.example.com/data/tasks/{task_id}/working-file-path' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/projects' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/sequences' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/shots' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/tasks' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/projectconnections' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/shotgun/remove/episode' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/csv/projects/{project_id}/casting' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/import/kitsu/tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/status/resources' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/config' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/news' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/presence-logs/{month_date}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/{person_id}/day-offs/{date}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/time-spents/month-table/{year}' \
--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/actions/persons/{person_id}/invite' \
--header "Authorization: $API_KEY"
Prior to disable two factor authentication, it requires to be admin. An admin can't disable two factor authentication for other admins.
curl \
--request DELETE 'http://api.example.com/actions/persons/{person_id}/disable-two-factor-authentication' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/playlists/{playlist_id}/jobs/{build_job_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/playlists/{playlist_id}/build/mp4' \
--header "Authorization: $API_KEY"
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.
curl \
--request POST 'http://api.example.com/pictures/preview-files/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/movies/originals/preview-files/{instance_id}/download' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/pictures/thumbnails/attachment-files/{attachment_file_id}.png' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/pictures/thumbnails/organisations/{instance_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/pictures/preview-background-files/{instance_id}.{extension}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/team' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/data/projects/{project_id}/settings/asset-types' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/projects/{project_id}/settings/asset-types/{asset_type_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/settings/preview-background-files' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/schedule-items/{task_type_id}/sequences' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/projects/{project_id}/budgets/{budget_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/budgets/time-spents' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/shots/{shot_id}/task-types' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/shots/{shot_id}/tasks' \
--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/shots/{shot_id}/preview-files' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/shots/{shot_id}/versions' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/scenes/{scene_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/episodes/{episode_id}' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/sequences/{sequence_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/sequences/{sequence_id}/task-types' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/sequences/{sequence_id}/shot-tasks' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/data/projects/{project_id}/shots' \
--header "Authorization: $API_KEY"
curl \
--request POST 'http://api.example.com/data/projects/{project_id}/scenes' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/projects/{project_id}/episodes' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/tasks/{task_id}/comments' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/persons/{person_id}/related-tasks/{task_type_id}' \
--header "Authorization: $API_KEY"
It return only tasks related to open projects.
curl \
--request GET 'http://api.example.com/data/persons/{person_id}/done-tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/entities/{entity_id}/task-types/{task_type_id}/tasks' \
--header "Authorization: $API_KEY"
See it as a way to batch delete tasks.
curl \
--request POST 'http://api.example.com/actions/projects/{project_id}/delete-tasks' \
--header "Authorization: $API_KEY"
entity type.
curl \
--request POST 'http://api.example.com/actions/projects/{project_id}/task-types/{task_type_id}/create-tasks/{entity_type}/' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/shots/{shot_id}/tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/sequences/{sequence_id}/tasks' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/assets/{asset_id}/task-types' \
--header "Authorization: $API_KEY"
project if user has access to this project.
curl \
--request GET 'http://api.example.com/data/user/projects/{project_id}/asset-types/{asset_type_id}/assets' \
--header "Authorization: $API_KEY"
curl \
--request PUT 'http://api.example.com/data/user/filters/{filter_id}' \
--header "Authorization: $API_KEY"
curl \
--request GET 'http://api.example.com/data/user/filter-groups/{filter_group_id}' \
--header "Authorization: $API_KEY"
curl \
--request PUT 'http://api.example.com/data/user/filter-groups/{filter_group_id}' \
--header "Authorization: $API_KEY"
This preview will be used as thumbnail to illustrate the entity.
curl \
--request PUT 'http://api.example.com/actions/tasks/{task_id}/set-main-preview' \
--header "Authorization: $API_KEY"
curl \
--request DELETE 'http://api.example.com/data/concepts/{concept_id}' \
--header "Authorization: $API_KEY"