Yllibed.TenantCloudClient 3.0.60-dev

This is a prerelease version of Yllibed.TenantCloudClient.
dotnet add package Yllibed.TenantCloudClient --version 3.0.60-dev
                    
NuGet\Install-Package Yllibed.TenantCloudClient -Version 3.0.60-dev
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Yllibed.TenantCloudClient" Version="3.0.60-dev" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Yllibed.TenantCloudClient" Version="3.0.60-dev" />
                    
Directory.Packages.props
<PackageReference Include="Yllibed.TenantCloudClient" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Yllibed.TenantCloudClient --version 3.0.60-dev
                    
#r "nuget: Yllibed.TenantCloudClient, 3.0.60-dev"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Yllibed.TenantCloudClient@3.0.60-dev
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Yllibed.TenantCloudClient&version=3.0.60-dev&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Yllibed.TenantCloudClient&version=3.0.60-dev&prerelease
                    
Install as a Cake Tool

Yllibed.TenantCloudClient

Unofficial .NET client library for TenantCloud, a rental property management platform.

This is not an official TenantCloud product. TenantCloud does not provide a public API; this library works against their internal endpoints.

Quick start

Targets .NET 8 and .NET 10. Install Yllibed.TenantCloudClient.Cdp as well for browser authentication. DI examples need Microsoft.Extensions.DependencyInjection and imports for that namespace, Yllibed.TenantCloudClient, Yllibed.TenantCloudClient.Cdp and Yllibed.TenantCloudClient.HttpMessages.

With dependency injection

services
    .AddSecureTokenStore()      // ITcTokenStore → OS credential store
    .AddCdpTokenProvider()      // ITcAuthTokenProvider (from Yllibed.TenantCloudClient.Cdp)
    .AddTenantCloudClient();    // ITcClient → TcClient

Then inject ITcClient:

public class MyService(ITcClient tc)
{
    public async Task<TcUserInfo?> WhoAmI(CancellationToken ct)
        => await tc.GetUserInfo(ct);
}

The default CDP provider reuses stored tokens or a browser with CDP enabled. For first-time interactive login, configure a provider as below.

Without dependency injection

using var tokenProvider = new CdpTokenProvider(new CdpTokenProviderOptions
{
    TokenStore = new SecureTokenStore(),
    AllowInteractiveLogin = true,
});

using var client = new TcClient(tokenProvider);
var user = await client.GetUserInfo(CancellationToken.None);

Rate limiting

Data reads are paced and HTTP 429 responses retried by default. Configure this per client with TcRateLimitOptions, passed to TcClient or AddTenantCloudClient. See the rate-limiting guide for defaults, waiting budgets and TcRateLimitException metadata.

API

Member Type Description
GetUserInfo(ct) Task<TcUserInfo?> Current signed-in user
Contacts IPaginatedSource<TcContact> Contacts (tenants, professionals)
Properties IPaginatedSource<TcProperty> Properties
Units IPaginatedSource<TcUnit> Rental units
Transactions IPaginatedSource<TcTransaction> Financial transactions
Leases IPaginatedSource<TcLease> Leases

Filters: .OnlyTenants(), .OnlyActive(), .ForProperty(id), .ForStatus(...), and more.

var tenants = await client.Contacts.OnlyTenants().GetAll(ct);

GetAll has a default target of 300 results and may exceed maxResults by including whole API pages. It is not an unlimited fetch or a strict cap. Use GetPage for explicit traversal and truncate locally when necessary.

Migrating to v3

The v2 ITcContext login and Tenants collection have been replaced by token providers and Contacts. TcProperty exposes fields directly rather than through Attributes, and TcUnit.Price is now decimal?: null means unknown, not zero. See the migration guide.

Archived-contact filtering remains unconfirmed. See known limitations for the open follow-ups in issue #12.

For full documentation, see the GitHub repository.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Yllibed.TenantCloudClient:

Package Downloads
Yllibed.TenantCloudClient.Cdp

Chrome DevTools Protocol (CDP) based token provider for Yllibed.TenantCloudClient. Extracts auth tokens from an existing browser session — no external NuGet dependencies.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.60-dev 82 9/13/2026
3.0.51-dev 85 9/13/2026
3.0.48-dev 81 9/13/2026
3.0.41-dev 144 2/16/2026
3.0.40-dev 118 2/16/2026
3.0.39-dev 125 2/16/2026
3.0.20-dev 124 2/16/2026
3.0.19-dev 119 2/16/2026
3.0.18-dev 122 2/16/2026
2.1.0 767 12/7/2020
2.1.0-dev.6 451 11/16/2020
2.1.0-dev.4 399 12/7/2020
2.1.0-dev.3 393 11/21/2020
2.1.0-dev.1 422 11/16/2020
2.0.0 726 11/16/2020
2.0.0-dev.36 390 11/16/2020
2.0.0-dev.35 382 11/16/2020
2.0.0-dev.33 432 11/5/2020
1.0.0-dev.21 508 6/5/2019
1.0.0-dev.20 518 6/5/2019
Loading failed