Skip to content
Joseph Namey edited this page Jul 30, 2026 · 6 revisions

EmmaSharper

A .NET client for the Emma (Marigold) API.

Targets netstandard2.0, net8.0, net10.0 — so .NET Framework 4.6.2+ works too. Dependencies two on the modern targets, both Microsoft.Extensions.*.

dotnet add package EmmaSharper

Start here

Page For
Getting Started Install, register with DI, make a first call
Enterprise and Multiple Accounts One credential pair addressing many subaccounts
Paging Emma's ranges are inclusive, and that trips people up
Rate Limiting and Resilience Emma throttles with 403, not just 429
Error Handling Typed exceptions instead of string-matching
Recipes Whole tasks, taken from a production sync
API Reference Every public type and member, generated from the assembly
Emma API Notes Behaviour of the API itself that the docs don't mention
Samples The same patterns as a runnable console app

Upgrading from 7.x? See the migration table in the changelog.

Provenance

This is the maintained continuation of kylegregory/EmmaSharp (last shipped 2019) by way of BinaryPatrick/EmmaSharper.

Several bugs still shown as open on those repositories are fixed here — the int32 overflow on Emma ids, multi-account support, .NET Core support. Each one is recorded with its cause and fix in Upstream issues fixed in this fork.

Providers

Interface Covers
IEmmaAccountProvider The account's users
IEmmaAutomationProvider Automation workflows
IEmmaEnterpriseProvider Subaccounts of an enterprise account
IEmmaFieldsProvider Custom member fields
IEmmaGroupProvider Groups and bulk group membership
IEmmaMailingProvider Mailings, their HTML, recipients
IEmmaMemberProvider Members, statuses, bulk imports
IEmmaResponseProvider Mailing response data
IEmmaSearchProvider Saved searches
IEmmaSignupFormProvider Sign-up forms
IEmmaSubscriptionProvider Subscriptions
IEmmaWebhookProvider Webhooks

Every method is asynchronous and takes a trailing CancellationToken.

Reporting bugs

Use this repository's issue tracker. The upstream repositories are not monitored.

Clone this wiki locally