TimeWizard.Sdk 0.1.116

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

Time Wizard .NET SDK

Official .NET client for the Time Wizard public REST API. Generated from the live OpenAPI spec on every push, so the SDK never lags behind the API.

Install

dotnet add package TimeWizard.Sdk

Targets netstandard2.1.

Quick start

using TimeWizard.Sdk;

var client = new TimeWizardClient("acme", "tw_...");

var workers = await client.Workers.ListWorkersAsync();
foreach (var worker in workers)
{
    Console.WriteLine($"{worker.FirstName} {worker.LastName}");
}

The constructor takes:

  • slug — your workspace slug, i.e. the subdomain on timewizard.io.
  • apiKey — a tenant-scoped API key minted from the admin "API keys" screen. Keys are prefixed tw_.

The client targets https://{slug}.timewizard.io/api/v1 and sends the key as Authorization: Bearer <apiKey> on every request.

Identifying your application

Pass an optional userAgent to identify your integration in our server logs — useful when you contact support or want to correlate spikes back to a specific deployment:

var client = new TimeWizardClient("acme", "tw_...", userAgent: "AcmePayroll/2.3");

Your token is prefixed to the SDK identifier rather than replacing it, so requests go out with:

User-Agent: AcmePayroll/2.3 TimeWizard.Sdk/1.2.3

The SDK portion always reflects the installed package version, so we can tell at a glance whether a customer is on a recent release.

What's exposed

One property per resource group, returning a typed API class:

Property API
client.Workers WorkersApi
client.Recruiters RecruitersApi
client.Clients ClientsApi
client.Sites SitesApi
client.Suppliers SuppliersApi
client.BillingGroups BillingGroupsApi
client.Invoices InvoicesApi
client.Jobs JobsApi
client.PayCycles PayCyclesApi
client.Timesheets TimesheetsApi
client.Approvers ApproversApi
client.Webhooks WebhooksApi
client.Authentication AuthenticationApi

Upsert semantics

Mutations on most resources are upserts keyed by atsReference — your system-of-record's identifier for the entity. A single POST /{resource} either inserts a new row or full-replaces the existing one matched by atsReference. The response carries an Operation discriminator (Created / Updated) so you can branch on it without a separate "does it exist?" round-trip.

Errors

Non-2xx responses throw ApiException. The body is the shared ApiError envelope ({ "error": { "code", "message", "details?" } }) — call .AsApiError() to get a typed view:

try
{
    await client.Workers.UpsertWorkerAsync(input);
}
catch (ApiException ex)
{
    var error = ex.AsApiError();
    if (error?.Error.Code == "ats_reference_in_use")
    {
        // handle the conflict
    }
}

Common status / code combinations:

  • 422 validation_failed — request didn't match the schema; details is a flatten of which fields failed.
  • 409 ats_reference_in_use (and other resource-specific codes) — business-rule conflict.
  • 401 not_authenticated — missing or invalid API key.
  • 403 missing_permission — your key lacks the required scope.

API reference

The full OpenAPI document and an interactive playground live at https://{slug}.timewizard.io/api/v1/docs.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.1.116 38 6/3/2026
0.1.114 94 5/19/2026
0.1.107 102 5/18/2026
0.1.106 94 5/18/2026
0.1.100 91 5/15/2026
0.1.98 93 5/14/2026
0.1.97 89 5/14/2026
0.1.96 88 5/14/2026
0.1.80 87 5/14/2026
0.1.79 82 5/14/2026
0.1.72 83 5/13/2026
0.1.71 86 5/13/2026
0.1.63 90 5/13/2026
0.1.62 95 5/13/2026
Loading failed

Minor update