Skip to main content

C# Examples for adaline.report

C# code examples for the Adaline Report API using HttpClient.

Examples use .NET's built-in HttpClient. No NuGet packages required.

Setup

using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;

class AdalineReportClient
{
    private const string BaseUrl = "https://api.adaline.report";
    private const string ApiKey = "your-api-key";
    private static readonly HttpClient client = new();

    static AdalineReportClient()
    {
        client.DefaultRequestHeaders.Add("X-API-Key", ApiKey);
    }

    static async Task<string> ApiRequest(HttpMethod method, string path, string? body = null)
    {
        var request = new HttpRequestMessage(method, BaseUrl + path);
        if (body != null)
            request.Content = new StringContent(body, Encoding.UTF8, "application/json");
        var response = await client.SendAsync(request);
        return await response.Content.ReadAsStringAsync();
    }
}

Scan a Document

static async Task<string> ScanDocument(string filePath)
{
    using var form = new MultipartFormDataContent();
    using var fileStream = File.OpenRead(filePath);
    var fileContent = new StreamContent(fileStream);
    form.Add(fileContent, "file", Path.GetFileName(filePath));

    var request = new HttpRequestMessage(HttpMethod.Post, BaseUrl + "/api/v1/scan");
    request.Headers.Add("X-API-Key", ApiKey);
    request.Content = form;

    var response = await client.SendAsync(request);
    return await response.Content.ReadAsStringAsync();
}

static async Task Main(string[] args)
{
    var result = await ScanDocument("syllabus.pdf");
    var json = JsonDocument.Parse(result).RootElement;
    Console.WriteLine($"Score: {json.GetProperty("overall_score")}% " +
                      $"(Grade {json.GetProperty("grade")})");
}

List Reports

var reports = await ApiRequest(HttpMethod.Get, "/api/v1/reports?page=1");
Console.WriteLine(reports);

Create a Tag

var tag = await ApiRequest(HttpMethod.Post, "/api/v1/tags",
    JsonSerializer.Serialize(new { name = "reviewed", color = "green" }));
Console.WriteLine(tag);

Tag a Report

await ApiRequest(HttpMethod.Post, $"/api/v1/tags/{tagId}/reports/{reportId}");

Share a Report

var share = await ApiRequest(HttpMethod.Post, $"/api/v1/reports/{reportId}/share");
Console.WriteLine(share);

Batch Scan

static async Task BatchScan(string directory)
{
    var extensions = new[] { ".pdf", ".docx", ".pptx" };
    foreach (var file in Directory.GetFiles(directory)
        .Where(f => extensions.Contains(Path.GetExtension(f).ToLower())))
    {
        Console.WriteLine($"Scanning {Path.GetFileName(file)}...");
        try
        {
            var result = await ScanDocument(file);
            var json = JsonDocument.Parse(result).RootElement;
            Console.WriteLine($"  Score: {json.GetProperty("overall_score")}% " +
                              $"({json.GetProperty("grade")})");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"  Error: {ex.Message}");
        }
    }
}
© 2026 Adaline LLC