Misar IO Docs

C# SDK

Install and use the MisarBlog C# SDK

Installation

dotnet add package MisarBlog

Requires .NET 8+.

Embed URL

using MisarBlog;

// Single article
string url = Embed.Url("gulshan", slug: "my-article", theme: "dark");
// → "https://misar.blog/gulshan/my-article/embed?theme=dark"

// Profile embed
string url = Embed.Url("gulshan");
// → "https://misar.blog/gulshan/embed"

Token refresh

using MisarBlog;

TokenResult result = await Auth.RefreshToken("your-current-token");
Console.WriteLine(result.Token);
Console.WriteLine(result.ExpiresAt); // long Unix timestamp

Custom base URL or reuse an HttpClient:

using var client = new HttpClient();
TokenResult result = await Auth.RefreshToken(
    "your-current-token",
    baseUrl: "https://your-instance.example.com",
    client: client);

API reference

Embed.Url(string username, string? slug = null, string theme = "auto"): string

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | username | string | — | MisarBlog username | | slug | string? | null | Article slug — null for profile embed | | theme | string | "auto" | "auto" | "light" | "dark" |

Auth.RefreshToken(string token, string baseUrl = "https://misar.blog", HttpClient? client = null): Task<TokenResult>

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | token | string | — | Current token | | baseUrl | string | "https://misar.blog" | Override base URL | | client | HttpClient? | null | Reuse an existing client; if null, one is created and disposed internally |

TokenResult is a record: Token string, ExpiresAt long. Throws HttpRequestException on failure.