Zindua for Node.js
Official @zindua/sdk v1.4.0. Send email and WhatsApp OTP from Express, Fastify, Nest, or Next.js. API key stays on the server.
npm install @zindua/sdk@zindua/sdk v1.4.0

One npm package
@zindua/sdk is the official Node client. Zero runtime deps, uses built-in fetch (Node 18+).
Server-side only
Never ship znd_live_… to the browser. Call send() and verifyEmail() from API routes or workers.
Email + WhatsApp
Same send() for both channels. Optional validate: true protects your Gmail/SMTP reputation.
Any Node HTTP stack
Express, Fastify, Nest, Hono, Bun, or start from the Next.js OTP starter.
Start where you already build
Node guides for Next and Fastify, plus the other official stacks on Zindua.
Next.js
NodeOTP starter with @zindua/create-app.
Open guideReact Email
ReactMigrate from Nodemailer, SendGrid, or SES. Keep your provider.
Open guideFastify
NodeNode backend with @zindua/sdk. Add Fastify separately as your HTTP framework.
Open guideFastAPI
PythonAsync Python routes with httpx.
Open guidePHP
PHPLaravel, Symfony, WordPress custom.
Open guide.NET
.NETASP.NET Core with Zindua.Sdk NuGet.
Open guideWordPress
PHPPlugin for OTP login and WooCommerce.
Open guideAPI keys never leave Node
The SDK throws in the browser. Your app calls your backend; your backend calls Zindua.
Browser
(no direct access)
Your Node backend
Zindua API
- Keep ZINDUA_API_KEY in server env only
- Expose your own /api/otp routes to the client
- Use znd_test_ in staging, znd_live_ in production
- Prefer verifyEmail / validate: true before OTP email
Four steps
01
Create a project
Sign up at zindua.run, create a project, copy the API key. Connect email and/or WhatsApp in the dashboard.
02
Install @zindua/sdk
npm install @zindua/sdk in your backend. Pin @zindua/sdk@1.4.0 in production.
03
Send OTP from a route
Instantiate Zindua with process.env.ZINDUA_API_KEY. Store codes in your DB/Redis; Zindua delivers the message.
04
Trace with logId
npx @zindua/cli@latest doctor or Dashboard → Logs. Webhooks optional.
Install and send
Pick a use case, switch language, copy the snippet. Same API across Node, Python, PHP, and .NET.
import { Zindua } from "@zindua/sdk"; const zindua = new Zindua({ apiKey: process.env.ZINDUA_API_KEY!,}); const result = await zindua.send({ to: "user@example.com", template: "otp-verification", variables: { code: "482910" },}); console.log(result.logId);Upgrade
npm install @zindua/sdk@1.4.0CLI
npx @zindua/cli@latest doctor or npx @zindua/cli@latest send --to user@example.com --template otp-verification --var code=482910
Next.js starter
npx @zindua/create-app@latest my-appWhatsApp sends cooperate with the anti-ban Guardian. Email quality lives on Email verification.
Ship OTP on Node today
Create a project, install @zindua/sdk, and send your first template from a server route.