Kitsu API
0.20.42

Base URL
http://api.example.com

Welcome to the Kitsu API specification

Version: 0.20.42

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.42 of this API documentation. Last update on May 16, 2025.

This API is provided under license AGPL 3.0.


















































































Responses

  • Login successful, redirect to the home page.

  • Wrong parameter

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

















































































Retrieve all asset types for given project.

GET /data/projects/{project_id}/asset-types

Responses

  • All asset types for given project

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




Responses

  • All assets for given project

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




























Resource to retrieve the casting of assets from given asset type.

GET /data/projects/{project_id}/asset-types/{asset_type_id}/casting

Responses

  • Casting of assets from given asset type

GET /data/projects/{project_id}/asset-types/{asset_type_id}/casting
curl \
 --request GET 'http://api.example.com/data/projects/{project_id}/asset-types/{asset_type_id}/casting' \
 --header "Authorization: $API_KEY"









































































Responses

  • All attachment files related to given project

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













































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
































Create a model with data given in the request body.

POST /data/entity-types

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

Responses

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
























































































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

Update a model with data given in the request body.

PUT /data/departments/{instance_id}

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

Responses

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




















Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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












































Create a model with data given in the request body.

POST /data/output-files

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

Responses

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
























































































































Update a model with data given in the request body.

PUT /data/time-spents/{instance_id}

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

Responses

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








Create a model with data given in the request body.

POST /data/day-offs/

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

Responses

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




















































Create a model with data given in the request body.

POST /data/asset-instances/

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

Responses

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
























































































Responses

  • Model deleted

  • Statement or integrity error

  • Instance non-existant

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

Retrieve all entries for given model.

GET /data/search-filter-groups/

Filters can be specified in the query string.

Responses

GET /data/search-filter-groups/
curl \
 --request GET 'http://api.example.com/data/search-filter-groups/' \
 --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/entity-links/{instance_id}

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

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
















































Responses

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





































































































Responses

  • Data versions of given edit

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












Create an edit for given project.

POST /data/projects/{project_id}/edits

Path parameters

Responses

  • Edit created for given project

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











































Export as csv.

GET /export/csv/persons.csv

Responses

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








Export as csv.

GET /export/csv/time-spents.csv

Responses

GET /export/csv/time-spents.csv
curl \
 --request GET 'http://api.example.com/export/csv/time-spents.csv' \
 --header "Authorization: $API_KEY"

















Responses

  • Last working files revision for each file name for given task

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









































































































































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
























Import remove instance.

POST /import/shotgun/remove/scene

Responses

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




































Responses

  • The lists of imported persons.

  • The .csv file is not properly formatted.

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




Import project shots via a .csv file.

POST /import/csv/projects/{project_id}/shots

Path parameters

Responses

  • The lists of imported assets.

  • The .csv file is not properly formatted.

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

























































Responses

  • Date and CPU, memory and jobs stats

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


































































Get ended shots used for quota calculation of this month.

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

Responses

  • Ended shots used for quota calculation of this month

  • Wrong date format

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




































Return all day off recorded for given year and person.

GET /data/persons/{person_id}/day-offs/year/{year}

Responses

  • All day off recorded for given year and person

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













































































Main resource to add a preview.

POST /pictures/preview-files/{instance_id}

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.

Path parameters

Responses

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





















































































































































Remove an asset type from a production.

DELETE /data/projects/{project_id}/settings/asset-types/{asset_type_id}

Responses

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
















































































Retrieve episodes schedule items for given task type

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

Responses

  • All episodes schedule items for given task type

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

































































Responses

  • All task types related to given scene

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
































































Delete given sequence.

DELETE /data/sequences/{sequence_id}

Responses

  • Given sequence deleted

DELETE /data/sequences/{sequence_id}
curl \
 --request DELETE 'http://api.example.com/data/sequences/{sequence_id}' \
 --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"





















































































































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




































Return episodes related to given project if the current user has access

GET /data/user/projects/{project_id}/episodes

to it.

Responses

  • Episodes related to given project

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