Skip to content
.NET

C# Screenshot API for .NET Applications

Add web capture to any .NET application — ASP.NET Core, Blazor, Azure Functions, or console apps. Capture screenshots, generate PDFs, record videos, and extract HTML. Fully async with strong typing.

What you can build

Enterprise reporting

Generate PDF reports from web dashboards and deliver them to SharePoint, Azure Blob, or email pipelines.

Azure Functions

Run capture jobs in serverless Azure Functions — no browser binaries to bundle, just an HTTP call.

Authenticated captures

Automate login flows with click, type, and navigate steps to screenshot internal portals and admin panels.

Compliance & archival

Screenshot regulated pages with geo-accurate rendering and archive the evidence in Azure Blob or S3.

What the API handles for you

Every output format

PNG, JPEG, WebP, full-page PDF, raw HTML, and video screencasts from one endpoint.

Automation steps

Click, type, scroll, navigate, and wait before capture — handle logins, cookie banners, and dynamic content.

80+ country routing

Render geo-gated pages from real browsers in any target country.

14+ app integrations

Deliver results to S3, Google Drive, Dropbox, Slack, and more — no upload code needed.

Batch & crawl

Capture entire sitemaps or crawl domains with built-in retries and progress tracking.

On-premise browsers

Run browser clients inside your network for compliance or latency requirements.

Installation

terminal
dotnet add package ScreenshotCenter
Available on NuGetnuget.org/packages/ScreenshotCenter

Quick start

Program.cs
using ScreenshotCenter;

var client = new ScreenshotCenterClient(
    Environment.GetEnvironmentVariable("SCREENSHOTCENTER_API_KEY")!);

var shot   = await client.Screenshot.CreateAsync("https://example.com");
var result = await client.WaitForAsync(shot.Id);
Console.WriteLine(result.Status); // "finished"

More examples

Ciblage géographique
var shot = await client.Screenshot.CreateAsync("https://example.com",
    new Dictionary<string, string> {
        ["country"] = "fr",
        ["lang"] = "fr-FR"
    });
var done = await client.WaitForAsync(shot.Id);
await client.Screenshot.SaveImageAsync(done.Id, "/tmp/fr.png");
Génération de PDF
var shot = await client.Screenshot.CreateAsync("https://example.com",
    new Dictionary<string, string> { ["pdf"] = "true" });
var done = await client.WaitForAsync(shot.Id);
await client.Screenshot.SavePdfAsync(done.Id, "/tmp/page.pdf");
Gestion des erreurs
try
{
    var result = await client.WaitForAsync(shot.Id, timeoutMs: 60_000);
}
catch (ScreenshotFailedException e)
{
    Console.Error.WriteLine($"Failed: {e.Reason}");
}
catch (TimeoutException e)
{
    Console.Error.WriteLine($"Timed out after {e.TimeoutMs}ms");
}
catch (ApiException e)
{
    Console.Error.WriteLine($"API error {e.Status}: {e.Message}");
}
Crawl de site web
var crawl = await client.Crawl.CreateAsync("https://example.com", "example.com", 100);
var result = await client.Crawl.WaitForAsync(crawl.Id);
Console.WriteLine(result.TotalDiscovered);  // pages found

Resources

Frequently asked questions

Does the SDK support .NET 6+?

Yes. The SDK targets .NET 6 and later, including .NET 7 and .NET 8. It works with ASP.NET Core, Blazor, Azure Functions, and console applications.

Is it fully async?

Yes. All API methods return Task and support async/await natively.

Can I generate PDFs from C#?

Yes. Set the PDF parameter and configure paper size, margins, and orientation — rendered in a real browser with full CSS and JavaScript support.

How does this compare to Selenium in .NET?

Selenium requires a local browser and WebDriver. ScreenshotCenter is a simple HTTP API — no browser installation, no driver version management.

Related

Start capturing with .NET today

Get 500 captures on the free trial — no credit card required. Install the SDK and take your first screenshot in minutes.