Skip to content

Character Blueprint Service

Access read-only character sheet blueprints, including sections, categories, traits, and supernatural content that define character sheet structure.

Usage

from vclient import character_blueprint_service

blueprint = character_blueprint_service(company_id="COMPANY_ID")

Methods

Sections

Top-level organization of a character sheet (e.g., "Attributes", "Skills", "Disciplines").

Method Returns Description
get_sections_page(*, limit?, offset?, game_version?, character_class?) PaginatedResponse[SheetSection] Get a page of sections
list_all_sections(*, game_version?, character_class?) list[SheetSection] Get all sections
iter_all_sections(*, game_version?, character_class?) AsyncIterator[SheetSection] Iterate through sections
get_section(*, section_id) SheetSection Get a section by ID

Categories

Filtered by section and game version (e.g., "Physical", "Social", "Mental" within "Attributes").

Method Returns Description
get_categories_page(*, limit?, offset?, game_version?, section_id?, character_class?) PaginatedResponse[TraitCategory] Get a page of categories
list_all_categories(*, game_version?, section_id?, character_class?) list[TraitCategory] Get all categories
iter_all_categories(*, game_version?, section_id?, character_class?) AsyncIterator[TraitCategory] Iterate through categories
get_category(*, category_id) TraitCategory Get a category by ID

Subcategories

Nested within categories. Not all categories have subcategories — only those with grouped traits (e.g., "Backgrounds" may have "Allies", "Resources").

Method Returns Description
get_subcategories_page(*, limit?, offset?, game_version?, category_id?, character_class?) PaginatedResponse[TraitSubcategory] Get a page of subcategories
list_all_subcategories(*, game_version?, category_id?, character_class?) list[TraitSubcategory] Get all subcategories
iter_all_subcategories(*, game_version?, category_id?, character_class?) AsyncIterator[TraitSubcategory] Iterate through subcategories
get_subcategory(*, subcategory_id) TraitSubcategory Get a subcategory by ID

All Traits

Search across all traits without section/category context. All parameters are optional.

Direct Trait Access

Use these methods to search all traits directly without navigating the section/category hierarchy. Category-scoped and subcategory-scoped traits are accessed via the parent_category_id and subcategory_id filter params.

Method Returns Description
get_traits_page(*, limit?, offset?, game_version?, character_class?, parent_category_id?, subcategory_id?, is_rollable?, order_by?, exclude_subcategory_traits?) PaginatedResponse[Trait] Get a page of all traits
list_all_traits(*, game_version?, character_class?, parent_category_id?, subcategory_id?, is_rollable?, order_by?, exclude_subcategory_traits?) list[Trait] Get all traits
iter_all_traits(*, game_version?, character_class?, parent_category_id?, subcategory_id?, is_rollable?, order_by?, exclude_subcategory_traits?) AsyncIterator[Trait] Iterate through all traits
get_trait(*, trait_id) Trait Get a trait by ID

Character Concepts

Method Returns Description
get_concepts_page(*, limit?, offset?) PaginatedResponse[CharacterConcept] Get a page of concepts
list_all_concepts() list[CharacterConcept] Get all concepts
iter_all_concepts() AsyncIterator[CharacterConcept] Iterate through concepts
get_concept(*, concept_id) CharacterConcept Get a concept by ID

Vampire Clans

Method Returns Description
get_vampire_clans_page(*, limit?, offset?, game_version?) PaginatedResponse[VampireClan] Get a page of clans
list_all_vampire_clans(*, game_version?) list[VampireClan] Get all clans
iter_all_vampire_clans(*, game_version?) AsyncIterator[VampireClan] Iterate through clans
get_vampire_clan(*, vampire_clan_id) VampireClan Get a clan by ID

Werewolf Tribes

Method Returns Description
get_werewolf_tribes_page(*, limit?, offset?, game_version?) PaginatedResponse[WerewolfTribe] Get a page of tribes
list_all_werewolf_tribes(*, game_version?) list[WerewolfTribe] Get all tribes
iter_all_werewolf_tribes(*, game_version?) AsyncIterator[WerewolfTribe] Iterate through tribes
get_werewolf_tribe(*, werewolf_tribe_id) WerewolfTribe Get a tribe by ID

Werewolf Auspices

Method Returns Description
get_werewolf_auspices_page(*, limit?, offset?, game_version?) PaginatedResponse[WerewolfAuspice] Get a page of auspices
list_all_werewolf_auspices(*, game_version?) list[WerewolfAuspice] Get all auspices
iter_all_werewolf_auspices(*, game_version?) AsyncIterator[WerewolfAuspice] Iterate through auspices
get_werewolf_auspice(*, werewolf_auspice_id) WerewolfAuspice Get an auspice by ID

Example

# List all sections for V5
sections = await blueprint.list_all_sections(game_version="V5")

for section in sections:
    print(f"Section: {section.name}")

    # Get categories within this section
    categories = await blueprint.list_all_categories(section_id=section.id)

    for category in categories:
        print(f"  Category: {category.name}")

        # Get top-level traits (excluding subcategory traits)
        traits = await blueprint.list_all_traits(
            parent_category_id=category.id,
            exclude_subcategory_traits=True,
        )

        for trait in traits:
            print(f"    Trait: {trait.name}")

        # Get subcategories within this category
        subcategories = await blueprint.list_all_subcategories(
            category_id=category.id,
        )

        for subcategory in subcategories:
            print(f"    Subcategory: {subcategory.name}")

            # Get traits within this subcategory
            sub_traits = await blueprint.list_all_traits(
                subcategory_id=subcategory.id,
            )

            for trait in sub_traits:
                print(f"      Trait: {trait.name}")

# Search all traits directly
all_traits = await blueprint.list_all_traits(game_version="V5")

See Response Models for SheetSection, TraitCategory, TraitSubcategory, Trait, and related types.