SDKs
C#

C#C# SDK

Overview

Official C# SDK for .NET applications.

Planned Features

  • .NET Standard 2.0+ – Compatible with .NET Core, .NET 5+, and .NET Framework
  • Async/await – Modern async API
  • Strong typing – Full IntelliSense support
  • Dependency injection – IServiceCollection integration
  • HttpClient factory – Connection pooling and resilience

Expected Installation

dotnet add package Canvelete.SDK

NuGet Package Manager

Install-Package Canvelete.SDK

Expected Usage

using Canvelete;
 
var client = new CanveleteClient("cvt_YOUR_API_KEY");
 
var result = await client.RenderAsync(new RenderRequest
{
    DesignId = "abc123",
    Format = "png",
    Quality = 90,
    DynamicElements = new Dictionary<string, object>
    {
        ["title"] = new { text = "Hello World" },
        ["image"] = new { src = "https://example.com/image.jpg" }
    }
});
 
Console.WriteLine($"Image URL: {result.ImageUrl}");
Console.WriteLine($"Render time: {result.RenderTime}ms");

Dependency Injection

using Microsoft.Extensions.DependencyInjection;
using Canvelete;
 
services.AddCanvelete(options =>
{
    options.ApiKey = "cvt_YOUR_API_KEY";
    options.Timeout = TimeSpan.FromSeconds(30);
});
 
// In your service/controller
public class ImageService
{
    private readonly ICanveleteClient _client;
 
    public ImageService(ICanveleteClient client)
    {
        _client = client;
    }
 
    public async Task<string> GenerateImageAsync()
    {
        var result = await _client.RenderAsync(new RenderRequest
        {
            DesignId = "abc123",
            Format = "png"
        });
 
        return result.ImageUrl;
    }
}

ASP.NET Core Example

[ApiController]
[Route("api/[controller]")]
public class ImagesController : ControllerBase
{
    private readonly ICanveleteClient _canvelete;
 
    public ImagesController(ICanveleteClient canvelete)
    {
        _canvelete = canvelete;
    }
 
    [HttpPost("generate")]
    public async Task<IActionResult> Generate([FromBody] GenerateRequest request)
    {
        var result = await _canvelete.RenderAsync(new RenderRequest
        {
            DesignId = request.DesignId,
            Format = "png",
            DynamicElements = request.Data
        });
 
        return Ok(new { imageUrl = result.ImageUrl });
    }
}

Get Notified

Want to be notified when the C# SDK is released?

Join our mailing list (opens in a new tab) or star the repo (opens in a new tab).

Alternative

Use the REST API with HttpClient:

using System.Net.Http;
using System.Text.Json;
 
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer cvt_YOUR_API_KEY");
 
var payload = new
{
    designId = "abc123",
    format = "png"
};
 
var response = await client.PostAsJsonAsync(
    "https://api.canvelete.com/api/v1/render",
    payload
);
 
var data = await response.Content.ReadFromJsonAsync<JsonDocument>();
Console.WriteLine(data.RootElement.GetProperty("data").GetProperty("imageUrl"));