Kitsu API
0.20.73

Base URL
http://api.example.com

Welcome to the Kitsu API specification

Version: 0.20.73

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](https://zou.cg-wire.com/api/).

This is version 0.20.73 of this API documentation. Last update on Sep 15, 2025.

This API is provided under license AGPL 3.0.















































Resource to send an OTP by email to user.

GET /auth/email-otp

Responses

  • 200

    OTP by email sent

  • 400

    Invalid password Wrong or expired token Inactive user

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




































Resource to allow a user to login with SAML SSO.

GET /auth/saml/login

Responses

  • 302

    Redirect to the SAML IDP.

  • 400

    Wrong parameter.

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













































Retrieve the casting of a given asset.

GET /data/assets/{asset_id}/casting

Path parameters

  • asset_id Required

Responses

  • 200

    Casting of given asset

GET /data/assets/{asset_id}/casting
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting' \
 --header "Authorization: $API_KEY"













































































































































































































































































Create a model with data given in the request body.

POST /data/project-status

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

Responses

  • 200

    Model created

  • 400

    Error

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
















































































































































































































































































































































Retrieve all entries for given model.

GET /data/day-offs/

Filters can be specified in the query string.

Responses

  • 200

    All entries for given model

  • 400

    Format error

  • 403

    Permission denied

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




















































































































































































































































































Create a model with data given in the request body.

POST /data/entity-links/

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

Responses

  • 200

    Model created

  • 400

    Error

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



















































































































































































































































































































































































































































Import shotgun resource.

POST /import/shotgun/projects

Responses

  • 200

    Resource imported

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








Import shotgun resource.

POST /import/shotgun/shots

Responses

  • 200

    Resource imported

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
































































Import remove instance.

POST /import/shotgun/remove/sequence

Responses

  • 204

    Instance removed

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
















































Import the estimations of task-types for given project.

POST /import/csv/projects/{project_id}/task-types/{task_type_id}/estimations

Path parameters

  • project_id Required
  • task_type_id Required

Responses

  • 201

    Estimations imported

  • 400

    Format error

POST /import/csv/projects/{project_id}/task-types/{task_type_id}/estimations
curl \
 --request POST 'http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/estimations' \
 --header "Authorization: $API_KEY"

Import the estimations of task-types for given episode of given project.

POST /import/csv/projects/{project_id}/episodes/{episode_id}/task-types/{task_type_id}/estimations

Path parameters

  • project_id Required
  • task_type_id Required
  • episode_id Required

Responses

  • 201

    Estimations imported

  • 400

    Format error

POST /import/csv/projects/{project_id}/episodes/{episode_id}/task-types/{task_type_id}/estimations
curl \
 --request POST 'http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/estimations' \
 --header "Authorization: $API_KEY"
























































































































































































Retrieve all playlists related to given project.

GET /data/projects/{project_id}/playlists/all

It's mainly used for synchronisation purpose.

Path parameters

  • project_id Required

Responses

  • 200

    All playlists related to given project

GET /data/projects/{project_id}/playlists/all
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/all' \
 --header "Authorization: $API_KEY"








































Previews






































































































































































Add a task type linked to a production.

POST /data/projects/{project_id}/settings/task-types

Path parameters

  • project_id Required

Responses

  • 201

    Asset type added to production

POST /data/projects/{project_id}/settings/task-types
curl \
 --request POST 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types' \
 --header "Authorization: $API_KEY"