Exsited 4.0.1

dotnet add package Exsited --version 4.0.1
                    
NuGet\Install-Package Exsited -Version 4.0.1
                    
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="Exsited" Version="4.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Exsited" Version="4.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Exsited" />
                    
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 Exsited --version 4.0.1
                    
#r "nuget: Exsited, 4.0.1"
                    
#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 Exsited@4.0.1
                    
#: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=Exsited&version=4.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Exsited&version=4.0.1
                    
Install as a Cake Tool

Exsited .NET SDK

.NET client for the Exsited v4 REST API. It handles OAuth2 authentication with a token cache, retries with backoff, connection pooling, proxies and custom TLS, a typed error hierarchy and secret redaction, and covers every v4 endpoint. Responses are available as the raw JSON text, as a dictionary, or as an optional typed view.

Requirements

  • .NET SDK 8.0.100 or newer (the package targets net8.0)
  • An Exsited instance and an API client: its base URL, client id, client secret and redirect URI

The package has no runtime dependencies.

Install

dotnet add package Exsited

Configure credentials

The SDK does not read credentials from the environment itself. Build an AuthConfig from wherever you keep them, for example environment variables, and pass it to the client.

using Exsited.Config;

var auth = new AuthConfig(
    baseUrl: Environment.GetEnvironmentVariable("EXSITED_BASE_URL") ?? "https://your-instance.example.com",
    clientId: Environment.GetEnvironmentVariable("EXSITED_CLIENT_ID") ?? "your-client-id",
    clientSecret: Environment.GetEnvironmentVariable("EXSITED_CLIENT_SECRET") ?? "your-client-secret",
    redirectUri: Environment.GetEnvironmentVariable("EXSITED_REDIRECT_URI") ?? "https://your-app.example.com/",
    clientName: "default");

All five arguments are required. Missing or invalid values are reported together when the config is constructed. By default the access token is cached in the per-user cache directory; pass tokenCachePath: null to keep it in memory only.

Behaviour such as retries, timeouts, logging and the response format is set on SdkConfig, whose only required argument is the AuthConfig:

var config = new SdkConfig(auth, maxRetries: 3, timeoutSeconds: 30.0);

First call

using Exsited.Client;
using Exsited.Config;
using Exsited.Resources.Accounts.AccountsDto;

await using var client = new ExsitedClient(new SdkConfig(auth));

var response = await client.Accounts.GetAccountAsync("your-account-id");

if (response.Succeeded)
{
    Console.WriteLine(response.Json);
    Console.WriteLine(response.Dto is Account account ? account.Name : null);
}

response.Map is the body as a dictionary, response.Json is the text exactly as the API sent it, and response.Dto is the typed view. Every endpoint is also available as a static method that takes the client, for example Accounts.GetAccountAsync(client, "your-account-id").

Errors

A failed call comes back as a response with Succeeded == false instead of throwing. Set raiseOnError: true on the SdkConfig, or on a single call, to throw an SdkError instead. Its Summary() is a one-line description and GetErrorMessages() returns the reasons the API gave.

using Exsited.Errors;

try
{
    await client.Accounts.GetAccountAsync("your-account-id", raiseOnError: true);
}
catch (SdkError error)
{
    Console.WriteLine(error.Summary());
}

Pagination

Listings are paged in one of two shapes, and the SDK detects which on each page. Pagination.IterRecordsAsync walks a listing lazily and yields one record at a time:

using Exsited.Client;
using Exsited.Resources.Payments;

await foreach (var record in Pagination.IterRecordsAsync(
    client, PaymentsUrls.Payments, PaymentsUrls.DataKey))
{
    Console.WriteLine(record["id"]);
}

Documentation

The endpoint reference is at exsited.mintlify.app.

License

MIT, see LICENSE.

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

    • No dependencies.

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.1 35 11/3/2026
4.0.0 101 10/25/2026
0.0.1 105 10/6/2026