Soenneker.Zoho.OpenApiClientUtil
4.0.131
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Zoho.OpenApiClientUtil --version 4.0.131
NuGet\Install-Package Soenneker.Zoho.OpenApiClientUtil -Version 4.0.131
<PackageReference Include="Soenneker.Zoho.OpenApiClientUtil" Version="4.0.131" />
<PackageVersion Include="Soenneker.Zoho.OpenApiClientUtil" Version="4.0.131" />
<PackageReference Include="Soenneker.Zoho.OpenApiClientUtil" />
paket add Soenneker.Zoho.OpenApiClientUtil --version 4.0.131
#r "nuget: Soenneker.Zoho.OpenApiClientUtil, 4.0.131"
#:package Soenneker.Zoho.OpenApiClientUtil@4.0.131
#addin nuget:?package=Soenneker.Zoho.OpenApiClientUtil&version=4.0.131
#tool nuget:?package=Soenneker.Zoho.OpenApiClientUtil&version=4.0.131
Soenneker.Zoho.OpenApiClientUtil
Provides cached ZohoOpenApiClient instances for access-token and data-center combinations.
Installation
dotnet add package Soenneker.Zoho.OpenApiClientUtil
Configuration
{
"Zoho": {
"AccessToken": "your-oauth-access-token",
"ClientBaseUrl": "https://www.zohoapis.com/crm/v8/"
}
}
The US CRM v8 base URL is used when ClientBaseUrl is omitted. Use the api_domain returned by Zoho's token endpoint for other data centers. Zoho:ApiKey remains supported as a legacy alias for Zoho:AccessToken.
Registration
services.AddZohoOpenApiClientUtilAsSingleton();
Scoped registration is also available:
services.AddZohoOpenApiClientUtilAsScoped();
The scoped provider borrows the singleton HTTP transport. Disposing it releases its generated clients without removing the shared transport.
Usage
public sealed class ZohoUserReader
{
private readonly IZohoOpenApiClientUtil _zoho;
public ZohoUserReader(IZohoOpenApiClientUtil zoho)
{
_zoho = zoho;
}
public async Task PrintUsers(CancellationToken cancellationToken)
{
ZohoOpenApiClient client = await _zoho.Get(cancellationToken);
var response = await client.Users.GetAsync(cancellationToken: cancellationToken);
foreach (var user in response?.Users ?? [])
Console.WriteLine($"{user.FullName} ({user.Email})");
}
}
Pass connection values explicitly when serving multiple Zoho tenants or data centers:
ZohoOpenApiClient tenantClient = await zohoClientUtil.Get(
tenantAccessToken,
"https://www.zohoapis.eu/crm/v8/",
cancellationToken);
The provider caches one generated client per access-token/base-URL pair. It does not obtain or refresh OAuth tokens.
| 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. |
-
net10.0
- Soenneker.Zoho.HttpClients (>= 4.0.137)
- Soenneker.Zoho.OpenApiClient (>= 4.0.29)
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 |
|---|---|---|
| 4.0.135 | 0 | 9/9/2026 |
| 4.0.134 | 0 | 9/9/2026 |
| 4.0.133 | 0 | 9/9/2026 |
| 4.0.132 | 0 | 9/8/2026 |
| 4.0.131 | 23 | 9/8/2026 |
| 4.0.130 | 35 | 9/8/2026 |
| 4.0.129 | 40 | 9/8/2026 |
| 4.0.128 | 41 | 9/8/2026 |
| 4.0.127 | 59 | 9/7/2026 |
| 4.0.126 | 58 | 9/7/2026 |
| 4.0.125 | 45 | 9/7/2026 |
| 4.0.124 | 73 | 9/6/2026 |
| 4.0.123 | 49 | 9/6/2026 |
| 4.0.122 | 48 | 9/5/2026 |
| 4.0.121 | 59 | 9/5/2026 |
| 4.0.120 | 53 | 9/4/2026 |
| 4.0.119 | 49 | 9/4/2026 |
| 4.0.118 | 44 | 9/4/2026 |
| 4.0.117 | 48 | 9/4/2026 |
| 4.0.116 | 48 | 9/4/2026 |