Skip to main content

Setup

Install @addresszen/sdk and create a client with your API key. The SDK runs in browsers and Node.js 22 or later and uses the runtime's native fetch.

npm install @addresszen/sdk
client.tsts
import { createZenClient } from "@addresszen/sdk";

const client = createZenClient({ apiKey: "ak_test" });

Client options​

OptionTypePurpose
apiKeystringRequired API key, sent as api_key
userTokenstringManagement Key for account operations. Keep it on your server
baseUrlstringDefaults to https://api.addresszen.com/v1
fetchtypeof fetchCustom fetch implementation for tests or request handling
headersHeadersInitHeaders sent with every request, such as User-Agent. Per-call headers take precedence
timeoutMsnumberMilliseconds before each request rejects with TimeoutError. No timeout by default

Request timeout​

Set timeoutMs on the client. A request that runs longer rejects with a DOMException named TimeoutError, as described in error handling. A per-call signal can still cancel the request sooner.

timeout.tsts
const client = createZenClient({ apiKey: "ak_test", timeoutMs: 30_000 });

To time out a single call, pass signal: AbortSignal.timeout(5_000) to the operation instead.

Default headers​

Pass headers to the client to send them with every request, for example a User-Agent that identifies your app. Headers passed to an operation take precedence. Browsers may drop a custom User-Agent, so set it on server-side clients.

headers.tsts
const client = createZenClient({
apiKey: "ak_test",
headers: { "User-Agent": "my-app/1.0" },
});

Management Key​

Set userToken to a Management Key only to call the account operations that need it: key details, usage and logs, licensees and configs. Each operation page says whether it needs one. A Management Key controls your account, so keep it on your server and never use it in a client that runs in the browser. The SDK sends it in the Authorization header, and only to operations that accept it.

Dependencies​

The root package has no runtime dependencies. Install @tanstack/react-query or @tanstack/preact-query only when using the matching adapter.

Module formats​

TypeScript consumers can use either NodeNext or bundler module resolution. CommonJS consumers can use require("@addresszen/sdk"). Use ESM imports for tree-shaking.