Table of Contents

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

Next Steps