Note: CI is currently disabled pending publication of
Boutquin.MarketData.*kernel packages to nuget.org. Rundotnet buildanddotnet testlocally before submitting a PR.
Concrete data source adapters for the Boutquin.MarketData kernel. Each adapter implements IDataSourceAdapter<TRequest, TRecord> from Boutquin.MarketData.Abstractions and self-registers via an AddMarketData*() extension method on IServiceCollection. Adapters are standalone NuGet packages — install only the ones you need.
| Package | Provider | Records | Auth |
|---|---|---|---|
Boutquin.MarketData.Adapter.Tiingo |
Tiingo | Bar, InstrumentMetadata |
API token |
Boutquin.MarketData.Adapter.TwelveData |
Twelve Data | Bar, InstrumentMetadata |
API key |
Boutquin.MarketData.Adapter.Frankfurter |
Frankfurter (ECB FX) | FxRate |
Anonymous |
Boutquin.MarketData.Adapter.Fred |
FRED (St. Louis Fed) | ScalarObservation |
API key |
Boutquin.MarketData.Adapter.BankOfCanada |
Bank of Canada | YieldCurveQuote, FxRate, ScalarObservation (CORRA) |
Anonymous |
Boutquin.MarketData.Adapter.NewYorkFed |
NY Fed Markets API | ScalarObservation (SOFR) |
Anonymous |
Boutquin.MarketData.Adapter.UsTreasury |
US Treasury H.15 | YieldCurveQuote |
Anonymous |
Boutquin.MarketData.Adapter.BankOfEngland |
BoE IADB | ScalarObservation (SONIA) |
Anonymous |
Boutquin.MarketData.Adapter.Ecb |
ECB SDMX | ScalarObservation (ESTR) |
Anonymous |
Boutquin.MarketData.Adapter.FamaFrench |
Ken French Data Library | FactorObservation |
Anonymous |
Boutquin.MarketData.Adapter.Cme |
CME Group settlement CSV files | FuturesSettlement |
File-based |
See docs/adapters.md for per-adapter configuration details, rate limits, publication lag notes, and data-quality caveats.
- Each adapter is a standalone NuGet package with no dependency on other adapters
- Self-registering DI: each adapter provides a single
AddMarketData*()extension method - Canonical-first: adapters emit typed records, not dictionaries
DataDateonDataProvenanceis the actual business date of data served, which may differ from the requested date for sources with publication lagDATE_ROLLBACKDataIssueemitted when actual data date precedes the requested date (e.g., requesting Monday SOFR before the NY Fed publishes returns Friday's fixing)- No adapter depends on another adapter or on domain packages (
Boutquin.Analytics,Boutquin.Trading,Boutquin.OptionPricing)
// Add the kernel from Boutquin.MarketData.DependencyInjection,
// then attach whichever adapters you need.
services
.AddMarketDataKernel()
.AddMarketDataTiingo(opts =>
{
opts.ApiToken = configuration["Tiingo:ApiToken"]!;
})
.AddMarketDataFred(opts =>
{
opts.ApiKey = configuration["Fred:ApiKey"]!;
})
.AddMarketDataNewYorkFed();Then fetch via IDataPipeline:
var result = await pipeline.FetchAsync(
new PriceHistoryRequest(symbols, dateRange),
cancellationToken);
foreach (var bar in result.Records)
Console.WriteLine($"{bar.Symbol} {bar.Date}: close={bar.Close}");dotnet build Boutquin.MarketData.Adapter.slnx --configuration Release
dotnet test Boutquin.MarketData.Adapter.slnx --configuration Release
dotnet format Boutquin.MarketData.Adapter.slnx --verify-no-changesThe nuget.config resolves Boutquin.MarketData.* packages from a local feed at ../Boutquin.MarketData/nupkg. Pack the kernel locally first:
cd ../Boutquin.MarketData
dotnet pack --configuration Release /p:MinVerVersionOverride=0.1.0-local --output nupkg- Adapter Reference — per-adapter configuration, auth, publication lag, and data-quality notes
Boutquin.MarketData.Adapter is open-source software provided under the Apache 2.0 License. It is a general-purpose library intended for educational and research purposes.
This software does not constitute financial advice. The data retrieval and normalization tools are provided as-is for research and development. Before using any market data or derived calculations in production, consult with qualified professionals who understand your specific requirements and regulatory obligations.
Licensed under the Apache License, Version 2.0.
Copyright (c) 2026 Pierre G. Boutquin. All rights reserved.