A Market Data customer built a C# SDK, ran it, then handed it to us. Today it ships as v1.0.0.
C#/.NET SDK RELEASED
Omid Rad needed Market Data in C#. We didn’t have an SDK, so he wrote one. Then he offered it to us as the official package.
We said yes, spent three weeks hardening it, and today it ships as v1.0.0 of the Market Data C#/.NET SDK, on NuGet as MarketDataApp.
This is the entire getting-started guide:
// Reads MARKETDATA_TOKEN from the environment.
using var client = await MarketDataClient.CreateAsync();
var quote = await client.Stocks.GetQuoteAsync(
"AAPL", cancellationToken: ct);
Console.WriteLine(quote.Values[0]); // AAPL mid=311.94
var req = new StockCandlesRequest(
StockResolution.Minutes(5), "AAPL")
{
From = new DateOnly(2022, 1, 1),
To = new DateOnly(2024, 12, 31)
};
// One call. Three HTTP requests behind it, merged.
var candles = await client.Stocks.GetCandlesAsync(
req, cancellationToken: ct);
Console.WriteLine(candles.Values.Count); // 58,968 bars
Console.WriteLine(candles.Parts.Count); // 3 requestsIT FITS THE APP YOU ALREADY HAVE
builder.Services.AddMarketDataClient(builder.Configuration) is the whole setup: a singleton over IHttpClientFactory, configured from wherever you already keep your secrets. Or hand it your own HttpClient. It won’t touch your settings, and it won’t dispose what it didn’t create.
MONEY IS DECIMAL
Every price, strike, bid, and ask is decimal from the moment it comes off the wire. The rounding error that surfaces three trades later never gets a chance to start. And a field the API didn’t send arrives as null, never a zero you might mistake for data.
IT DOES THE TEDIOUS PARTS
Three years of five-minute candles is one call: the SDK slices the range, runs the pieces concurrently, and merges them back together. It retries with backoff, honors Retry-After, and won’t spend a request your quota no longer has.
dotnet add package MarketDataApp and you’re running. .NET 8 and .NET 10, 100% of lines and branches covered, and five runnable samples, including an MCP server that hands your AI agent live quotes.
THANK YOU, OMID
Omid Rad (Exceptal) wrote the original SDK and donated it to us. His commits are still in the history under his name.
