Working with Creators
Search for users who publish models on Civitai.
Query Examples
Search by Username:
var searchResult = await apiClient.Creators
.WhereName("johndoe")
.ExecuteAsync(resultsLimit: 20);
if (searchResult is Result<PagedResult<Creator>>.Success success)
{
foreach (var creator in success.Data.Items)
{
Console.WriteLine($"{creator.Username}: {creator.ModelCount ?? 0} models");
}
}
List All:
var allCreators = await apiClient.Creators
.ExecuteAsync(resultsLimit: 50);
if (allCreators is Result<PagedResult<Creator>>.Success allSuccess)
{
Console.WriteLine($"Found {allSuccess.Data.Items.Count} creators");
}
Creator Information
if (allCreators is Result<PagedResult<Creator>>.Success creatorInfoSuccess)
{
foreach (var creator in creatorInfoSuccess.Data.Items)
{
Console.WriteLine($"{creator.Username}: {creator.ModelCount ?? 0} models");
}
}
Model Creators
var models = await apiClient.Models
.WhereUsername("johndoe")
.ExecuteAsync();
if (models is Result<PagedResult<Model>>.Success modelSuccess)
{
foreach (var model in modelSuccess.Data.Items)
{
if (model.Creator is { } creator)
{
Console.WriteLine($"{model.Name} by {creator.Username}");
Console.WriteLine($" Creator has {creator.ModelCount ?? 0} models");
}
}
}
Common Patterns
List Creators:
var topCreators = await apiClient.Creators
.ExecuteAsync(resultsLimit: 50);
if (topCreators is Result<PagedResult<Creator>>.Success topSuccess)
{
foreach (var creator in topSuccess.Data.Items)
{
Console.WriteLine($"{creator.Username}: {creator.ModelCount ?? 0} models");
}
}
Search Specific:
var searchSpecific = await apiClient.Creators
.WhereName("artist")
.ExecuteAsync(resultsLimit: 50);
Models by Creator:
var creatorModels = await apiClient.Models
.WhereUsername("artistname")
.OrderBy(ModelSort.Newest)
.ExecuteAsync(resultsLimit: 100);
if (creatorModels is Result<PagedResult<Model>>.Success creatorModelSuccess)
{
Console.WriteLine($"Found {creatorModelSuccess.Data.Items.Count} models");
foreach (var model in creatorModelSuccess.Data.Items)
{
Console.WriteLine($" {model.Name}");
Console.WriteLine($" Downloads: {model.Stats?.DownloadCount ?? 0}");
}
}
Endpoint Reliability Warning
The /api/v1/creators endpoint experiences reliability issues: HTTP 500 errors, slow responses (10-30s), and timeouts. Use generous timeouts (60-120s), implement retry logic, handle failures gracefully, and cache results.
var unreliableResult = await apiClient.Creators.ExecuteAsync(resultsLimit: 10);
if (!unreliableResult.IsSuccess)
{
Console.WriteLine("Creator data unavailable, using fallback");
}