FinnHubSharp 1.0.4
dotnet add package FinnHubSharp --version 1.0.4
NuGet\Install-Package FinnHubSharp -Version 1.0.4
<PackageReference Include="FinnHubSharp" Version="1.0.4" />
<PackageVersion Include="FinnHubSharp" Version="1.0.4" />
<PackageReference Include="FinnHubSharp" />
paket add FinnHubSharp --version 1.0.4
#r "nuget: FinnHubSharp, 1.0.4"
#:package FinnHubSharp@1.0.4
#addin nuget:?package=FinnHubSharp&version=1.0.4
#tool nuget:?package=FinnHubSharp&version=1.0.4
FinnHubSharp
FinnHubSharp is a .NET Standard client for the Finnhub finance APIs. It supports common REST endpoints and streaming trade data over WebSockets.
Requirements
- .NET SDK 10.0 or later for building this repository
- Library target:
netstandard2.1 - Test target:
net10.0
Repository Layout
src/
FinnHubSharp/ # Client library
tests/
FinnHubSharp.Tests/ # NUnit unit tests
utilities/
FinnHubSharpConsole/ # Console runner/sample app
The solution includes src, tests, and utilities as solution folders for IDEs such as Visual Studio and Rider.
Install
NuGet package: FinnHubSharp
dotnet add package FinnHubSharp
Usage
REST Client
using FinnHubSharp.Implementations;
using FinnHubSharp.Models.Configuration;
var httpClient = new HttpClient();
var client = new FinnHubClient(
httpClient,
new FinnHubSharpConfiguration
{
ApiKey = "YOUR_API_KEY"
});
var quote = await client.GetQuoteAsync("AAPL");
if (quote.ErrorMessage is null)
{
Console.WriteLine($"Current price for AAPL: {quote.Quote.CurrentPrice}");
}
else
{
Console.WriteLine($"Finnhub request failed: {quote.ErrorMessage}");
}
Available REST methods:
GetQuoteAsync(string symbol)GetSymbolInfoAsync(string symbolOrSecurityName)GetAllSymbolsAsync(string exchange)GetMarketStatusAsync(string exchange)GetMarketHolidaysAsync(string exchange)
Streaming Client
using System.Net.WebSockets;
using FinnHubSharp.Implementations;
using FinnHubSharp.Models.Request;
var streamerClient = new FinnHubStreamerClient(new ClientWebSocket(), "YOUR_API_KEY");
await foreach (var stream in streamerClient.GetStreamingQuotes(
new StreamingSubscription
{
Type = "subscribe",
Symbol = "BINANCE:BTCUSDT"
}))
{
await foreach (var message in stream)
{
foreach (var trade in message.Data)
{
Console.WriteLine($"{trade.Symbol}: {trade.Price}");
}
}
}
JSON
FinnHubSharp uses System.Text.Json for JSON serialization and deserialization. The raw response models use JsonPropertyName attributes to preserve Finnhub wire names such as c, pc, displaySymbol, and type.
Development
Restore and build:
dotnet restore FinnHubSharp.sln
dotnet build FinnHubSharp.sln --no-restore
Run tests:
dotnet test tests/FinnHubSharp.Tests/FinnHubSharp.Tests.csproj --no-restore
The test suite uses NUnit, Moq, RichardSzalay.MockHttp, and Shouldly.
Run the console sample:
dotnet run --project utilities/FinnHubSharpConsole/FinnHubSharpConsole.csproj
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- System.Text.Json (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
* Added interfaces for market status and market holidays