Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/cgwire/zou/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Asset Types are categories used to classify and organize production assets. They define the different kinds of reusable elements in your production pipeline, such as Characters, Props, Environments, and more.

What are Asset Types?

Asset Types (also called Entity Types for assets) help you:
  • Organize assets into logical categories
  • Configure pipelines with type-specific task types
  • Filter and search assets efficiently
  • Apply bulk operations to similar assets
  • Generate reports grouped by asset category
Asset Types are distinct from temporal entity types (Shot, Sequence, Episode, Scene, Edit, Concept). The API automatically filters to show only asset types.

Standard Asset Types

While you can create custom asset types, here are common categories used in animation and VFX:

Character

Animated characters (main, supporting, background)

Prop

Objects that characters interact with

Environment

Sets, locations, and backgrounds

Vehicle

Cars, ships, aircraft, spacecraft

FX

Effects elements (fire, water, explosions)

Camera

Virtual camera rigs

Asset Type Model

id
string
required
Unique identifier (UUID format)
"c46c8gc6-eg97-6887-c292-79675204e47"
name
string
required
Asset type name
"Character"
short_name
string
Abbreviated name for UI display
"CHAR"
description
string
Detailed description of the asset type
"Animated characters including main cast and background performers"
task_types
array
Array of task type IDs associated with this asset type. Defines the default production pipeline.
[
  "f79f1jf9-hj20-9110-f625-02908537h70",  // Modeling
  "g80g2kg0-ik31-0221-g736-13019648i81"   // Texturing
]
archived
boolean
Whether the asset type is archived and hidden from active use
false
created_at
string
Creation timestamp (ISO 8601 format)
"2023-01-15T10:30:00Z"
updated_at
string
Last update timestamp (ISO 8601 format)
"2023-06-20T14:45:00Z"

Managing Asset Types

Get All Asset Types

Retrieve all asset types in the system:
GET /api/data/asset-types
Example Response:
[
  {
    "id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "name": "Character",
    "short_name": "CHAR",
    "description": "Animated characters",
    "task_types": [
      "f79f1jf9-hj20-9110-f625-02908537h70",
      "g80g2kg0-ik31-0221-g736-13019648i81"
    ],
    "archived": false,
    "created_at": "2023-01-15T10:30:00Z",
    "updated_at": "2023-06-20T14:45:00Z"
  },
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "Prop",
    "short_name": "PROP",
    "description": "Props and objects",
    "task_types": [
      "f79f1jf9-hj20-9110-f625-02908537h70"
    ],
    "archived": false,
    "created_at": "2023-01-15T10:31:00Z",
    "updated_at": "2023-01-15T10:31:00Z"
  }
]

Get Single Asset Type

Retrieve a specific asset type by ID:
GET /api/data/asset-types/{asset_type_id}
Example Response:
{
  "id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "name": "Character",
  "short_name": "CHAR",
  "description": "Animated characters including main cast",
  "task_types": [
    "f79f1jf9-hj20-9110-f625-02908537h70",
    "g80g2kg0-ik31-0221-g736-13019648i81",
    "h91h3lh1-jl42-1332-h847-24120759j92"
  ],
  "archived": false,
  "created_at": "2023-01-15T10:30:00Z",
  "updated_at": "2023-06-20T14:45:00Z"
}

Get Asset Types for Project

Retrieve only the asset types that are actually used in a specific project:
GET /api/data/projects/{project_id}/asset-types
This returns only asset types that have at least one asset in the project. Example Response:
[
  {
    "id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "name": "Character",
    "short_name": "CHAR"
  },
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "Environment",
    "short_name": "ENV"
  }
]

Get Asset Types for Shot

Retrieve asset types of assets that are cast in a specific shot:
GET /api/data/shots/{shot_id}/asset-types
Useful for understanding what types of assets appear in a shot. Example Response:
[
  {
    "id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "name": "Character",
    "short_name": "CHAR"
  },
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "Prop",
    "short_name": "PROP"
  }
]

Task Type Associations

Asset Types can be associated with specific Task Types to define the production pipeline for that category of assets.

Example Pipeline Configurations

Character Pipeline:
  • Concept
  • Modeling
  • Texturing
  • Rigging
  • Grooming
  • Lookdev
Prop Pipeline:
  • Concept
  • Modeling
  • Texturing
  • Lookdev
Environment Pipeline:
  • Concept
  • Layout
  • Modeling
  • Texturing
  • Lighting Setup

Creating Asset Types

Asset types are typically created through:
  1. Initial setup: When setting up a new production
  2. Import: From project templates or CSV import
  3. Auto-creation: The get_or_create_asset_type() service method
Asset Type creation is usually done through the admin interface or import tools rather than direct API calls. The API focuses on reading and using existing asset types.

Filtering Assets by Type

Once you have asset types, you can filter assets:
GET /api/data/projects/{project_id}/asset-types/{asset_type_id}/assets
This retrieves all assets of a specific type within a project. Example Response:
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Hero Character",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "entity_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "asset_type_name": "Character",
    "description": "Main protagonist",
    "preview_file_id": "e68e0ie8-gi19-8009-e514-91897426g69"
  },
  {
    "id": "f79f1jf9-hj20-9110-f625-02908537h70",
    "name": "Villain Character",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "entity_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "asset_type_name": "Character",
    "description": "Main antagonist",
    "preview_file_id": "g80g2kg0-ik31-0221-g736-13019648i81"
  }
]

Best Practices

Start with 4-6 basic asset types (Character, Prop, Environment, Vehicle, FX). Add more only when needed.
Use clear, standardized names across projects. Avoid abbreviations in the main name field.
Associate relevant task types with each asset type to streamline pipeline creation.
Avoid creating too many specific asset types. Use asset metadata (data field) for detailed categorization instead.
Use the archived flag rather than deleting asset types to preserve historical data.

Integration Examples

Python: Get Character Assets

import requests

# Get the Character asset type ID
response = requests.get(
    "https://kitsu.example.com/api/data/asset-types",
    headers={"Authorization": f"Bearer {token}"}
)
asset_types = response.json()
character_type = next(at for at in asset_types if at["name"] == "Character")

# Get all character assets in project
response = requests.get(
    f"https://kitsu.example.com/api/data/projects/{project_id}/asset-types/{character_type['id']}/assets",
    headers={"Authorization": f"Bearer {token}"}
)
characters = response.json()

print(f"Found {len(characters)} character assets")

JavaScript: Filter by Asset Type

const getAssetsByType = async (projectId, typeName) => {
  // Get asset types
  const typesResponse = await fetch(
    `https://kitsu.example.com/api/data/projects/${projectId}/asset-types`,
    { headers: { Authorization: `Bearer ${token}` } }
  );
  const assetTypes = await typesResponse.json();
  
  // Find the type
  const assetType = assetTypes.find(at => at.name === typeName);
  if (!assetType) return [];
  
  // Get assets of that type
  const assetsResponse = await fetch(
    `https://kitsu.example.com/api/data/projects/${projectId}/asset-types/${assetType.id}/assets`,
    { headers: { Authorization: `Bearer ${token}` } }
  );
  
  return assetsResponse.json();
};

const props = await getAssetsByType(projectId, "Prop");
console.log(`Found ${props.length} props`);

Assets Overview

Learn about the asset system

API Endpoints

Complete endpoint reference

Task Types

Configure production task types

Projects

Project management

Build docs developers (and LLMs) love