Kitsu API
0.20.41

Base URL
http://api.example.com

Welcome to the Kitsu API specification

Version: 0.20.41

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.

OpenAPI definition

This is version 0.20.41 of this API documentation. Last update on May 6, 2025.

This API is provided under license AGPL 3.0.















Responses

  • Registration successful

  • Invalid password or email

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





























































































































Retrieve all shot asset instances linked to asset.

GET /data/assets/{asset_id}/shot-asset-instances

Responses

  • All shot asset instances linked to asset

GET /data/assets/{asset_id}/shot-asset-instances
curl \
 --request GET 'http://api.example.com/data/assets/{asset_id}/shot-asset-instances' \
 --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"




Delete given entity link.

DELETE /data/projects/{project_id}/entity-links/{entity_link_id}

It's mainly used for synchronisation purpose.

DELETE /data/projects/{project_id}/entity-links/{entity_link_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/{project_id}/entity-links/{entity_link_id}' \
 --header "Authorization: $API_KEY"





























































































Create a model with data given in the request body.

POST /data/projects

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

Responses

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
















































































































































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








































































Update a model with data given in the request body.

PUT /data/preview-files/{instance_id}

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

Responses

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




















































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




















Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

DELETE /data/time-spents/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/time-spents/{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/milestones/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/milestones/{instance_id}' \
 --header "Authorization: $API_KEY"





















































































































































































































































































































































Responses

  • All working files for given entity and possibly a task and a name

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
















Get all output files for given entity and given output type.

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

Responses

  • All output files for given entity and given output type

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
































Update working file modification date with current date.

PUT /actions/working-files/{working_file_id}/modified

Responses

  • Working file modification date updated

PUT /actions/working-files/{working_file_id}/modified
curl \
 --request PUT 'http://api.example.com/actions/working-files/{working_file_id}/modified' \
 --header "Authorization: $API_KEY"

































































Import remove instance.

POST /import/shotgun/remove/project

Responses

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

































































































































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






























Get time spents for given person and date.

GET /data/persons/{person_id}/time-spents/{date}

Responses

  • Time spents for given person and date

  • Wrong date format

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












Get aggregated time spents for given person and week.

GET /data/persons/{person_id}/time-spents/week/{year}/{week}

Responses

  • Aggregated time spents for given person and week

  • Wrong date format

GET /data/persons/{person_id}/time-spents/week/{year}/{week}
curl \
 --request GET 'http://api.example.com/data/persons/{person_id}/time-spents/week/{year}/{week}' \
 --header "Authorization: $API_KEY"












Get ended shots used for quota calculation of this day.

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

Path parameters

Responses

  • Ended shots used for quota calculation of this day

  • Wrong date format

GET /data/persons/{person_id}/quota-shots/day/{year}/{month}/{day}
curl \
 --request GET 'http://api.example.com/data/persons/{person_id}/quota-shots/day/{year}/{month}/{day}' \
 --header "Authorization: $API_KEY"


































































































































































Create a thumbnail for given object instance.

POST /pictures/thumbnails/organisations/{instance_id}

Path parameters

Responses

  • Thumbnail created

  • Cannot found related object.

POST /pictures/thumbnails/organisations/{instance_id}
curl \
 --request POST 'http://api.example.com/pictures/thumbnails/organisations/{instance_id}' \
 --header "Authorization: $API_KEY"




















Create a thumbnail for given object instance.

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

Path parameters

Responses

  • Thumbnail created

  • Cannot found related object.

POST /pictures/thumbnails/persons/{instance_id}.png
curl \
 --request POST 'http://api.example.com/pictures/thumbnails/persons/{instance_id}.png' \
 --header "Authorization: $API_KEY"




































Allow to change orders of previews for a single revision.

PUT /actions/preview-files/{preview_file_id}/update-position

This preview will be used to illustrate the entity.

Responses

  • Orders of previews changed for a single revision

PUT /actions/preview-files/{preview_file_id}/update-position
curl \
 --request PUT 'http://api.example.com/actions/preview-files/{preview_file_id}/update-position' \
 --header "Authorization: $API_KEY"





















































Remove a task status from a production.

DELETE /data/projects/{project_id}/settings/task-status/{task_status_id}

Responses

DELETE /data/projects/{project_id}/settings/task-status/{task_status_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/{project_id}/settings/task-status/{task_status_id}' \
 --header "Authorization: $API_KEY"




































































Retrieve time spents for given production

GET /data/projects/{project_id}/time-spents

Responses

  • All time spents of given production

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
















Delete a budget for given production

DELETE /data/projects/{project_id}/budgets/{budget_id}

Responses

DELETE /data/projects/{project_id}/budgets/{budget_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/{project_id}/budgets/{budget_id}' \
 --header "Authorization: $API_KEY"












Delete a budget entry for given production and budget.

DELETE /data/projects/{project_id}/budgets/{budget_id}/entries/{entry_id}

Responses

DELETE /data/projects/{project_id}/budgets/{budget_id}/entries/{entry_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/{project_id}/budgets/{budget_id}/entries/{entry_id}' \
 --header "Authorization: $API_KEY"






















































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
































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




























































Responses

  • All task types related to given shot

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

































































































Responses

  • Tasks related to given entity asset, episode, sequence, shot or scene

GET /data/entities/{entity_id}/task-types/{task_type_id}/tasks
curl \
 --request GET 'http://api.example.com/data/entities/{entity_id}/task-types/{task_type_id}/tasks' \
 --header "Authorization: $API_KEY"

Retrieve all comments to tasks related to given project.

GET /data/projects/{project_id}/comments

It's mainly used for synchronisation purpose.

Responses

  • All comments to tasks related to given project

GET /data/projects/{project_id}/comments
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/comments' \
 --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"




































Create a new task for given asset and task type.

POST /actions/projects/{project_id}/task-types/{task_type_id}/assets/create-tasks

Path parameters

Responses

  • New task for given asset and task type created

POST /actions/projects/{project_id}/task-types/{task_type_id}/assets/create-tasks
curl \
 --request POST 'http://api.example.com/actions/projects/{project_id}/task-types/{task_type_id}/assets/create-tasks' \
 --header "Authorization: $API_KEY"








Create a new task with given task type for each entity of given

POST /actions/projects/{project_id}/task-types/{task_type_id}/create-tasks/{entity_type}/

entity type.

Path parameters

Responses

  • List of created tasks.

POST /actions/projects/{project_id}/task-types/{task_type_id}/create-tasks/{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"









Responses

  • Tasks related to given asset for current user

GET /data/user/assets/{asset_id}/tasks
curl \
 --request GET 'http://api.example.com/data/user/assets/{asset_id}/tasks' \
 --header "Authorization: $API_KEY"
























































































Responses

  • Filter groups for the current user and only for open projects created.

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

Responses

  • Filter groups for the current user and only for open projects

GET /data/user/filter-groups/{filter_group_id}
curl \
 --request GET 'http://api.example.com/data/user/filter-groups/{filter_group_id}' \
 --header "Authorization: $API_KEY"




DELETE /data/user/filter-groups/{filter_group_id}
curl \
 --request DELETE 'http://api.example.com/data/user/filter-groups/{filter_group_id}' \
 --header "Authorization: $API_KEY"