Client libraries
Official client libraries handle authentication, retries, rate-limiting, webhook verification, and TypeScript-grade typing for every endpoint.
| Language | Package | Status | Repo |
|---|---|---|---|
| TypeScript | @quantum-elixir/sdk | Stable | github.com/quantum-elixir-tech/sdk-typescript |
| Python | quantum-elixir | Stable | github.com/quantum-elixir-tech/sdk-python |
| Go | github.com/quantum-elixir-tech/sdk-go | Stable | github.com/quantum-elixir-tech/sdk-go |
| Java / Kotlin | tech.quantumelixir:sdk | Beta | github.com/quantum-elixir-tech/sdk-java |
| .NET | QuantumElixir.Sdk | Beta | github.com/quantum-elixir-tech/sdk-dotnet |
| Ruby | quantum-elixir | Community | github.com/quantum-elixir-tech/sdk-ruby |
| PHP | quantum-elixir/sdk | Community | github.com/quantum-elixir-tech/sdk-php |
Mobile
| Platform | Package | Status | Used by |
|---|---|---|---|
| React Native (iOS/Android) | @quantum-elixir/device-sdk-rn | Stable | Anti-Fraud Platform — device intelligence + attestation |
| iOS Swift | QuantumElixirIdentity | Stable | Identity Platform — KTP capture + face liveness |
| Android Kotlin | tech.quantumelixir:identity-android | Stable | Identity Platform — KTP capture + face liveness |
| Flutter | quantum_elixir_identity | Beta | Identity Platform — wraps native KTP capture |
Quick install
TypeScript
npm install @quantum-elixir/sdkimport { QuantumElixir } from '@quantum-elixir/sdk';
const qe = new QuantumElixir({ apiKey: process.env.QE_API_KEY! });
const customer = await qe.identity.customers.create({
fullName: 'Budi Santoso',
nik: '3201234567890001',
});Python
pip install quantum-elixirfrom quantum_elixir import QuantumElixir
qe = QuantumElixir(api_key=os.environ["QE_API_KEY"])
customer = qe.identity.customers.create(
full_name="Budi Santoso",
nik="3201234567890001",
)Go
go get github.com/quantum-elixir-tech/sdk-goclient := quantumelixir.New(os.Getenv("QE_API_KEY"))
customer, _ := client.Identity.Customers.Create(ctx, &quantumelixir.CustomerCreate{
FullName: "Budi Santoso",
NIK: "3201234567890001",
})What the SDKs do for you
- Auth — sets the
Authorizationheader from the constructor. - Retries — exponential backoff with jitter on
429/5xx. Configurable. - Rate-limit headers — surfaces
X-RateLimit-Remainingso you can throttle proactively. - Webhook verification —
qe.webhooks.verify(body, signature, secret)does the HMAC dance. - Streaming — for endpoints that stream (LLM completions in AI Automation), exposes an async iterator.
- Typed errors — typed exceptions per status code (
QuantumElixirValidationError,QuantumElixirRateLimitError, etc.). - Pagination helpers —
for await (const c of qe.identity.customers.list())auto-pages.
Versioning
SDKs follow semver. Major versions bump only for breaking API changes; we hold breaking changes for at least 12 months and deprecate loudly first (see Changelog).
The SDK pins to a wire-protocol version automatically — you don't have to set an API version header by hand.
Rolling your own
If you'd rather call the REST API directly (no SDK), everything you need is on Authentication, Errors, Webhooks, and each product's reference pages. The OpenAPI specs at /api-reference let you generate a typed client in any language.