FireflyIIINet 6.6.6
dotnet add package FireflyIIINet --version 6.6.6
NuGet\Install-Package FireflyIIINet -Version 6.6.6
<PackageReference Include="FireflyIIINet" Version="6.6.6" />
<PackageVersion Include="FireflyIIINet" Version="6.6.6" />
<PackageReference Include="FireflyIIINet" />
paket add FireflyIIINet --version 6.6.6
#r "nuget: FireflyIIINet, 6.6.6"
#:package FireflyIIINet@6.6.6
#addin nuget:?package=FireflyIIINet&version=6.6.6
#tool nuget:?package=FireflyIIINet&version=6.6.6
FireflyIIINet - the C# library for the Firefly III API
This is a .NET client for the Firefly III personal finance manager API.
This C# SDK is a hand-maintained client for the Firefly III API, built on Refit and System.Text.Json. It is kept in sync with the Firefly III OpenAPI specification manually — updates are applied directly to the source.
- API version: 6.6.6 (v1 endpoints, plus the two v2 endpoints last documented in 6.2.21)
- SDK version: 6.6.6 (tracks the API version; the 4th revision component denotes client-only changes)
- Source specification: api/firefly-iii-v6.6.6-v1.yaml (upstream stopped publishing v2 specs after 6.2.21)
- All released specifications (0.10.4 – 6.6.6): api/
Frameworks supported
- .NET 10.0
- .NET Framework 4.8
Dependencies
- Refit - 15.0.0 or later
- Refit.Reflection - version-locked to Refit (keeps
RestService.For<T>working on all targets) - System.Text.Json - 10.0.10 or later
- System.ComponentModel.Annotations - 5.0.0 or later
Installation
Build with dotnet build FireflyIIINet.sln, then reference the library and use the namespaces:
using FireflyIIINet.Api; // the Refit interfaces (IAccountsApi, ITransactionsApi, ...)
using FireflyIIINet.Client; // FireflyRefitSettings, SerializerOptions
using FireflyIIINet.Model;
using Refit;
This client is a set of Refit interfaces — one per API area
(IAboutApi, IAccountsApi, IAttachmentsApi, IAutocompleteApi, IAvailableBudgetsApi,
IBillsApi, IBudgetsApi, ICategoriesApi, IChartsApi, IConfigurationApi, ICurrenciesApi,
IDataApi, IInsightApi, ILinksApi, INetWorthApi, IObjectGroupsApi, IPiggyBanksApi,
IPreferencesApi, IRecurrencesApi, IRuleGroupsApi, IRulesApi, ISearchApi, ISummaryApi,
ITagsApi, ITransactionsApi, ITransactionsSumApi, IUsersApi, IWebhooksApi).
You build a client with an HttpClient plus the settings from FireflyRefitSettings.Create(),
which wire up the library's System.Text.Json options and the URL parameter formatting the
Firefly III API expects (lowercase booleans, [EnumMember] enum values, yyyy-MM-dd dates).
Auth is a personal access token supplied as a bearer token on the HttpClient.
Getting Started
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using FireflyIIINet.Api;
using FireflyIIINet.Client;
using FireflyIIINet.Model;
using Refit;
var http = new HttpClient { BaseAddress = new Uri("https://demo.firefly-iii.org/api") };
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "<personal access token>");
var accounts = RestService.For<IAccountsApi>(http, FireflyRefitSettings.Create());
var list = await accounts.ListAccount(type: AccountTypeFilter.Asset);
foreach (var account in list.Data)
Console.WriteLine($"{account.Id}: {account.Attributes.Name}");
A runnable end-to-end example (create + delete a transaction) lives in src/Example/.
Errors
Refit throws Refit.ApiException for non-success status codes; the JSON error payload is
available via ex.Content and can be deserialized to the spec's error models
(ValidationError, NotFound, Unauthenticated, ...) with SerializerOptions.Default.
Notes
Transaction/TransactionSplitStorepiggy bank properties intentionally serialize explicitnullvalues (piggy_bank_id,piggy_bank_name) — the API distinguishes absent from null.- Date-only fields use the
yyyy-MM-ddwire format viaOpenAPIDateConverter; date-time fields use RFC 3339. - The test suite never hits the network — Refit slice tests use a capturing handler that records the outgoing request and returns canned JSON.
Development
There is no code generator in this repo. When the spec changes, edit the Refit interfaces under
src/FireflyIIINet/Api and the models under src/FireflyIIINet/Model directly, and keep
the spec copy under api/ in sync.
dotnet build FireflyIIINet.sln
dotnet test FireflyIIINet.sln
# Check whether upstream has published API specs not yet vendored in api/,
# and (--diff) how far the pinned SDK spec is behind the newest upstream v1.
# This is a .NET 10 file-based app (needs the .NET 10 SDK; the library targets net8.0).
dotnet run scripts/check-spec-version.cs -- --diff
A scheduled workflow (spec-check.yml) runs the same check weekly; when new upstream
specs appear it fails the run and opens a spec-check-labeled issue (one at a time —
no duplicates while an issue is open).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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 Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- Refit (>= 15.0.0)
- Refit.Reflection (>= 15.0.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Text.Json (>= 10.0.10)
-
net10.0
- Refit (>= 15.0.0)
- Refit.Reflection (>= 15.0.0)
- System.ComponentModel.Annotations (>= 5.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.
| Version | Downloads | Last Updated |
|---|---|---|
| 6.6.6 | 54 | 8/12/2026 |
| 6.6.2 | 53 | 8/12/2026 |
| 6.5.5 | 54 | 8/12/2026 |
| 6.5.1 | 50 | 8/12/2026 |
| 6.4.17 | 50 | 8/12/2026 |
| 6.4.16 | 47 | 8/12/2026 |
| 6.4.14 | 53 | 8/12/2026 |
| 6.4.8 | 50 | 8/12/2026 |
| 6.4.4 | 54 | 8/12/2026 |
| 6.4.3 | 50 | 8/12/2026 |
| 6.4.2 | 64 | 8/12/2026 |
| 6.4.0 | 54 | 8/12/2026 |
| 6.3.0 | 52 | 8/12/2026 |
| 6.2.21 | 50 | 8/12/2026 |
| 6.2.13 | 47 | 8/12/2026 |
| 6.2.10 | 46 | 8/12/2026 |
| 6.2.9 | 47 | 8/12/2026 |
| 6.2.8 | 55 | 8/12/2026 |
| 6.2.7 | 46 | 8/12/2026 |
| 6.2.2 | 55 | 8/12/2026 |
Firefly III API 6.6.6: full /v1/subscriptions alias family for bills (list/get/store/update/delete, attachments, rules, transactions) and subscriptions CSV export; reuses the Bill models.