Client SDKs

Rather than writing HTTP calls by hand, use a generated client. Three are produced from the published contract — C#, TypeScript and Python — so their types always match what the API actually serves.

Getting them

The SDKs are currently distributed as build artifacts, not from a package registry. Ask your Staff & Go contact for the archive matching the contract version you are integrating against; each one carries a VERSION file identifying it.

This will change. Publication to public registries — Sonatype OSS, npm, PyPI — is the intended next step, so that installing a client is a one-line command. Until then the artifact is the supported route. If registry publication matters to your timeline, say so: it is a prioritisation question, not a technical obstacle.

Using a client

Every client is a fluent tree that mirrors the URL structure. Reading a partner profile looks like this:

var profile = await client.Api.V1.Client.Partner.Profile.GetAsync();
const profile = await client.api.v1.client.partner.profile.get();
profile = await client.api.v1.client.partner.profile.get()

The version is part of that path, exactly as it is in the URL — so moving from v1 to v2 is a visible, deliberate edit rather than a silent behaviour change. See Versioning.

Two things to set yourself

The base URL. The contract declares no server, so the client cannot know which environment you are targeting. Set it explicitly when constructing the request adapter — that is also what keeps sandbox and production from being one configuration mistake apart.

Authentication. The generated clients do not mint tokens. Supply the bearer token through your HTTP stack's authentication provider, refreshing it before expiry as described in Authentication.

What the generated clients do not cover

They speak the contract, and nothing beyond it. These remain yours to implement, and each has a guide:

Regenerating a client yourself

Nothing stops you: the contract is public at /openapi/v1.json and the generator is Kiota, which is free and open source. Generating your own is a legitimate option if you need a language we do not publish, or different conventions.