Soenneker.Zoho.OpenApiClientUtil
4.0.136
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Zoho.OpenApiClientUtil --version 4.0.136
NuGet\Install-Package Soenneker.Zoho.OpenApiClientUtil -Version 4.0.136
<PackageReference Include="Soenneker.Zoho.OpenApiClientUtil" Version="4.0.136" />
<PackageVersion Include="Soenneker.Zoho.OpenApiClientUtil" Version="4.0.136" />
<PackageReference Include="Soenneker.Zoho.OpenApiClientUtil" />
paket add Soenneker.Zoho.OpenApiClientUtil --version 4.0.136
#r "nuget: Soenneker.Zoho.OpenApiClientUtil, 4.0.136"
#:package Soenneker.Zoho.OpenApiClientUtil@4.0.136
#addin nuget:?package=Soenneker.Zoho.OpenApiClientUtil&version=4.0.136
#tool nuget:?package=Soenneker.Zoho.OpenApiClientUtil&version=4.0.136
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.141)
- Soenneker.Zoho.OpenApiClient (>= 4.0.30)
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.140 | 0 | 9/13/2026 |
| 4.0.139 | 0 | 9/13/2026 |
| 4.0.138 | 35 | 9/13/2026 |
| 4.0.136 | 57 | 9/11/2026 |
| 4.0.135 | 58 | 9/9/2026 |
| 4.0.134 | 51 | 9/9/2026 |
| 4.0.133 | 64 | 9/9/2026 |
| 4.0.132 | 68 | 9/8/2026 |
| 4.0.131 | 76 | 9/8/2026 |
| 4.0.130 | 79 | 9/8/2026 |
| 4.0.129 | 83 | 9/8/2026 |
| 4.0.128 | 83 | 9/8/2026 |
| 4.0.127 | 98 | 9/7/2026 |
| 4.0.126 | 99 | 9/7/2026 |
| 4.0.125 | 88 | 9/7/2026 |
| 4.0.124 | 108 | 9/6/2026 |
| 4.0.123 | 83 | 9/6/2026 |
| 4.0.122 | 85 | 9/5/2026 |
| 4.0.121 | 107 | 9/5/2026 |
| 4.0.120 | 90 | 9/4/2026 |