SDKs
The four first-party Zumik SDKs - Python, TypeScript, Go, and Rust - with install, ZUMIK_API_KEY auth, the /v1 OpenAI-compatible vs native /v2 split, and a capability matrix.
Zumik ships four first-party SDKs. Each is a thin, dependency-light client over the same HTTP API: the OpenAI-compatible /v1 surface and the native, stateful /v2 surface. None of them reimplement an LLM client; they wrap the endpoints and get out of the way.
Python
zumik - synchronous, httpx-backed. The widest native coverage after TypeScript.
TypeScript
@zumik/sdk - fetch-based, zero runtime dependencies, the widest native surface.
Go
github.com/yethdev/Zumik/sdks/go - standard library only, core flow.
Rust
zumik-sdk - async reqwest, core flow, returns serde_json::Value.
Two surfaces, one platform
Every SDK talks to both public API surfaces:
/v1- OpenAI compatible. Exact OpenAI request and response shapes. The compatibility contract means a vanilla OpenAI SDK works againsthttps://api.zumik.ai/v1with only a base-URL swap, so the Zumik SDKs keep their/v1helpers deliberately thin. For the full OpenAI surface (streaming, the complete chat/embeddings options), point the official OpenAI client at the Zumik base URL - see Using the OpenAI SDK and OpenAI compatibility./v2- native and stateful. Artifacts, bundles, sessions, branches, snapshots, native responses, diagnostics, token counts, and signed purge jobs as first-class objects. This is where the SDKs add real ergonomics.
The two interoperate: build state on /v2, then attribute /v1 traffic to it with Agent-* headers. See Core concepts.
Install
pip install zumikAll four are at 0.1.0. Python needs 3.9+ (httpx only); TypeScript is ESM and runs anywhere fetch exists (Node 18+ and the browser); Go needs 1.22+ with no third-party dependencies; Rust is async over reqwest and serde_json.
Authenticate with ZUMIK_API_KEY
Every SDK takes the API key as an explicit argument. None of them read the environment for you, which keeps the key out of accidental scope. Read ZUMIK_API_KEY yourself and pass it in:
import os
from zumik import ZumikClient
client = ZumikClient(api_key=os.environ["ZUMIK_API_KEY"])The base URL defaults to https://api.zumik.ai in every SDK and is overridable for staging or a self-hosted deployment. The key is sent as a bearer token. See Authentication for key formats, rotation, and per-key budgets.
Capability matrix
The TypeScript SDK has the broadest native coverage. Python is close behind. Go and Rust cover the core artifact-to-session-to-diagnose flow; anything not listed is reachable by calling the HTTP API directly with the client's underlying HTTP handle.
| Capability | Python | TypeScript | Go | Rust |
|---|---|---|---|---|
/v1 responses create / retrieve / cancel | Yes | Yes | create only | create only |
/v1 input-token count | - | Yes | - | - |
/v1 chat completions | use openai | Yes | use openai-go | use HTTP |
/v1 embeddings | use openai | Yes | use openai-go | use HTTP |
/v1 models list / retrieve | - | Yes | - | - |
| Artifacts create | Yes | Yes | Yes | Yes |
| Artifacts retrieve / delete | - | Yes | - | - |
| Bundles create | Yes | Yes | Yes | Yes |
| Bundles retrieve / delete | - | Yes | - | - |
| Sessions create | Yes | Yes | Yes | Yes |
| Branches create (fork) | Yes | Yes | - | - |
| Append event (compare-and-swap) | Yes | Yes | Yes | Yes |
| Snapshots create | Yes | Yes | Yes | Yes |
Native /v2 responses | Yes | Yes | - | - |
| Diagnostics | Yes | Yes | Yes | Yes |
| Token counts | Yes | Yes | - | - |
| Purge jobs + receipts | Yes | Yes | - | - |
| Model aliases | - | Yes | - | - |
| Built-in streaming | No | No | No | No |
| Built-in retries | No | No | No | No |
No SDK streams or retries on your behalf. For OpenAI-style streamed responses, use the official openai client against the /v1 base URL (details). Add your own retry and timeout policy at the call site.
Picking a path
Support tickets
The enterprise support portal API - open a ticket, exchange a message thread with the Zumik team, and track status. First-response SLA is derived from the project's plan tier.
Python SDK
Install the zumik package, authenticate, and call /v1 and native /v2 endpoints with a synchronous httpx-backed client.