Misar IO Docs

C# SDK

Install and use the MisarBlog C# SDK

Installation

dotnet add package Misar.Blog

Quick Start

using Misar.Blog;
using Misar.Blog.Models;

var client = new MisarBlogClient(Environment.GetEnvironmentVariable("MISARBLOG_API_KEY")!);

var posts = await client.Posts.ListAsync("johndoe");
foreach (var post in posts.Data)
{
    Console.WriteLine($"{post.Title} — {post.Slug}");
}

Generate an Embed URL

var url = client.Embed.Url("johndoe", theme: "dark");
Console.WriteLine(url);

// Single post
var postUrl = client.Embed.Url("johndoe", slug: "my-first-post", theme: "light");

Available Methods

| Method | Description | |--------|-------------| | client.Posts.ListAsync(username, params, ct) | List posts for a user | | client.Posts.GetAsync(username, slug, ct) | Get a single post by slug | | client.Embed.Url(username, slug, theme) | Generate an embed URL | | client.Auth.RefreshTokenAsync(token, ct) | Refresh a session token | | client.Webhooks.ListAsync(ct) | List webhook endpoints | | client.Webhooks.CreateAsync(request, ct) | Register a webhook | | client.Webhooks.DeleteAsync(id, ct) | Delete a webhook |

Error Handling

using Misar.Blog.Exceptions;

try
{
    var posts = await client.Posts.ListAsync("johndoe");
}
catch (MisarBlogApiException ex)
{
    Console.WriteLine($"API error {ex.StatusCode}: {ex.Message}");
}
catch (MisarBlogNetworkException ex)
{
    Console.WriteLine($"Network error: {ex.Message}");
}