SDKs
Everything the SDKs do is plain HTTPS against the API: any language can call it. The SDKs save you the plumbing: types for every operation and object, retries that are always safe, paging, typed errors and webhook verification. Their types are generated from the same OpenAPI document as the reference, so they always match it.
| Package | For | Install |
|---|---|---|
| @zentiq/node | Your server: every API operation, typed, with retries, paging and webhook verification | npm install @zentiq/node@^1Coming to npm as 1.0.0. |
| zentiq | Your server, in Python 3.9+: every operation, standard library only | pip install "zentiq>=1,<2"Coming to PyPI as 1.0.0. |
| @zentiq/client | The browser: join a live session with the token your server started | npm install @zentiq/client@^1Coming to npm as 1.0.0. |
| @zentiq/react | React: an embedded portal and a live session as components | npm install @zentiq/react@^1 @zentiq/client@^1Coming to npm as 1.0.0. |
| @zentiq/mcp | AI assistants on your own machine: the API as MCP tools, over stdio | npx -y @zentiq/mcp@^1Coming to npm as 1.0.0. |
Which one#
- On your server: Node or Python. They hold the API key: never use them in a browser.
- In the browser: the browser SDK joins a live session with the token your server started; the React components wrap it, and embed a portal for your signed-in users.
- For an AI assistant on your own machine: the MCP server gives it the API as tools.
What they all do#
- Every operation is a method, named after its operation id:
createPersonain Node,create_personain Python. The reference shows each operation's name and a call in both. - Safe retries: a
429is retried after the pause it asks for; no answer,502,503and504are retried with a growing pause (twice by default) only where a retry can't do anything twice: reads, updates, deletes, and the creating calls that take anIdempotency-Key, which the SDK sends for you, the same on each retry. - The newest contract: every request sends
Zentiq-Version: 2026-10-01, whatever the key's own. - Pages:
paginatewalks a list for you. - Typed errors: one error class per kind of failure, all with
code,status,message,param,detailsand therequestId. - Webhooks:
verifyWebhookchecks the signature and the timestamp, and gives you the event, typed by itstype.
The SDKs' versions follow the contract: 1.x speaks 2026-10-01. A later contract that changes something incompatibly comes with a new major version.