Usage Service
Monitor Civitai Generator API consumption, credits, and usage patterns.
Get Current Consumption
var result = await sdkClient.Usage.GetConsumptionAsync();
if (result is Result<ConsumptionDetails>.Success success)
{
Console.WriteLine($"Images Generated: {success.Data.Images}");
Console.WriteLine($"Total Cost: {success.Data.TotalCost:F2} Buzz");
Console.WriteLine($"Period: {success.Data.StartDate} to {success.Data.EndDate}");
}
Get Specific Period
var startDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var endDate = new DateTime(2026, 1, 31, 23, 59, 59, DateTimeKind.Utc);
var periodResult = await sdkClient.Usage.GetConsumptionAsync(startDate, endDate);
if (periodResult is Result<ConsumptionDetails>.Success periodSuccess)
{
Console.WriteLine($"January 2026 Usage:");
Console.WriteLine($" Images: {periodSuccess.Data.Images}");
Console.WriteLine($" Total Cost: {periodSuccess.Data.TotalCost:F2} Buzz");
}
Error Handling
var errorResult = await sdkClient.Usage.GetConsumptionAsync();
switch (errorResult)
{
case Result<ConsumptionDetails>.Success usageSuccess:
Console.WriteLine($"Current usage: {usageSuccess.Data.TotalCost:F2} Buzz ({usageSuccess.Data.Images} images)");
break;
case Result<ConsumptionDetails>.Failure failure:
Console.WriteLine($"Error: {failure.Error.Message}");
// Usage tracking is non-critical, continue operation
break;
}
Best Practices
- Cache usage data
- Use UTC dates
- Separate monitoring from core functionality
- Set up budget alerts