Zumik
SDKs

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.

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 against https://api.zumik.ai/v1 with only a base-URL swap, so the Zumik SDKs keep their /v1 helpers 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

Python
pip install zumik

All 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:

Python
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.

CapabilityPythonTypeScriptGoRust
/v1 responses create / retrieve / cancelYesYescreate onlycreate only
/v1 input-token count-Yes--
/v1 chat completionsuse openaiYesuse openai-gouse HTTP
/v1 embeddingsuse openaiYesuse openai-gouse HTTP
/v1 models list / retrieve-Yes--
Artifacts createYesYesYesYes
Artifacts retrieve / delete-Yes--
Bundles createYesYesYesYes
Bundles retrieve / delete-Yes--
Sessions createYesYesYesYes
Branches create (fork)YesYes--
Append event (compare-and-swap)YesYesYesYes
Snapshots createYesYesYesYes
Native /v2 responsesYesYes--
DiagnosticsYesYesYesYes
Token countsYesYes--
Purge jobs + receiptsYesYes--
Model aliases-Yes--
Built-in streamingNoNoNoNo
Built-in retriesNoNoNoNo

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

On this page