Working with Tags
Query tags used to categorize models on Civitai.
Query Examples
List All:
var allTags = await apiClient.Tags
.ExecuteAsync(resultsLimit: 20);
if (allTags is Result<PagedResult<Tag>>.Success success)
{
foreach (var tag in success.Data.Items)
{
Console.WriteLine($"{tag.Name}");
}
}
Search by Name:
var searchResult = await apiClient.Tags
.WhereName("anime")
.ExecuteAsync();
if (searchResult is Result<PagedResult<Tag>>.Success searchSuccess)
{
Console.WriteLine($"Found {searchSuccess.Data.Items.Count} anime-related tags");
foreach (var tag in searchSuccess.Data.Items)
{
Console.WriteLine($" {tag.Name}");
}
}
Using with Models
var animeModels = await apiClient.Models
.WhereTag("anime")
.ExecuteAsync(resultsLimit: 50);
if (animeModels is Result<PagedResult<Model>>.Success modelsSuccess)
{
foreach (var model in modelsSuccess.Data.Items)
{
Console.WriteLine($"{model.Name}");
if (model.Tags is { } tags)
{
Console.WriteLine($" Tags: {string.Join(", ", tags)}");
}
}
}
Model Tags:
// Example from a model instance
if (animeModels is Result<PagedResult<Model>>.Success modelSuccess && modelSuccess.Data.Items.Count > 0)
{
var model = modelSuccess.Data.Items[0];
if (model.Tags is { } modelTags)
{
foreach (var tagName in modelTags)
{
Console.WriteLine($" - {tagName}");
}
}
}
Common Patterns
List Multiple:
var popularTags = await apiClient.Tags
.ExecuteAsync(resultsLimit: 100);
if (popularTags is Result<PagedResult<Tag>>.Success popularSuccess)
{
foreach (var tag in popularSuccess.Data.Items)
{
Console.WriteLine($" {tag.Name}");
}
}
Related Tags:
var characterTags = await apiClient.Tags
.WhereName("character")
.ExecuteAsync(resultsLimit: 50);