AvatarSDK 1.0.0

dotnet add package AvatarSDK --version 1.0.0
                    
NuGet\Install-Package AvatarSDK -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AvatarSDK" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AvatarSDK" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="AvatarSDK" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AvatarSDK --version 1.0.0
                    
#r "nuget: AvatarSDK, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AvatarSDK@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AvatarSDK&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=AvatarSDK&version=1.0.0
                    
Install as a Cake Tool

AvatarSDK

A .NET SDK for interacting with the avtr.icu avatar listing API. also known as Cute Avatar Search

Note: This README and the XML doc summaries in the source were generated with AI assistance. All SDK and test code was written by hand.


Installation

Add a reference to the AvatarSDK project

Usage

using AvatarSDK;

using var api = new API("MyApp/1.0 you@example.com");

// Search for avatars
List<AvatarDoc> results = await api.SearchAsync("cute fox", Platform.Windows);

// Fetch a specific avatar by ID
AvatarDoc? avatar = await api.GetAvatarAsync("avtr_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");

// Get a random selection
List<AvatarDoc> random = await api.GetRandomAsync(Platform.Android);

// Get the latest listings
List<AvatarDoc> latest = await api.GetLatestAsync();

// Get all avatars by an author
List<AvatarDoc> byAuthor = await api.GetMoreByAuthorAsync("usr_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");

Search options

SearchOptions lets you toggle content filters and sort order:

var opts = new SearchOptions
{
    Marketplace = true,
    SortMode    = SortMode.Newest,
};

var results = await api.SearchAsync("avatar", Platform.Windows, opts);

Uploading avatars

// Upload by ID
await api.UploadAvatarAsync("avtr_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");

// Upload with full metadata
await api.UploadAvatarAsync(new AvatarDoc { Id = "avtr_...", Name = "My Avatar" });

// Bulk upload
await api.UploadBulkAsync(listOfAvatarDocs);

// Request a metadata refresh
await api.RequestAvatarUpdateAsync("avtr_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");

API Reference

Method Description
SearchAsync(query, platform, options) Search avatars by keyword
GetAvatarAsync(avatarId) Fetch a single avatar by ID
GetRandomAsync(platform, options) Get a random selection of avatars
GetLatestAsync(platform) Get the most recently listed avatars
GetMoreByAuthorAsync(authorId) Get all avatars by a specific author
UploadAvatarAsync(avatar) Upload or update an avatar
UploadBulkAsync(avatars) Upload multiple avatars at once
RequestAvatarUpdateAsync(avatarId) Request a metadata refresh for an avatar

Error handling

All methods throw AvatarApiException on non-success responses:

try
{
    var avatar = await api.GetAvatarAsync("avtr_...");
}
catch (AvatarApiException ex)
{
    Console.WriteLine($"API error {ex.StatusCode}: {ex.Message}");
}

Running the tests

The test suite hits the live API to verify end-to-end behaviour:

dotnet test AvatarSDK-Tests/AvatarSDK-Tests.csproj

This SDK and the avtr.icu (Cute Avatar Search) service is a independent project and is not official.

  • Non-Affiliation: This software and the associated API are not affiliated with, authorized, maintained, sponsored, or endorsed by VRChat Inc.
  • Trademarks: "VRChat" is a registered trademark of VRChat Inc. The use of this name is strictly for identification and descriptive purposes and does not imply any association with or endorsement by the trademark holder.
  • Compliance: Users of this SDK are responsible for ensuring their applications comply with the VRChat Terms of Service and Community Guidelines.
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 102 4/26/2026