Zindua

Instant communication platform for businesses, optimized for developers.

Product
  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing
Developers
  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor
Solutions
  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions
Company
  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

Product

  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing

Developers

  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor

Solutions

  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions

Company

  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

© 2026 Zindua, Inc. All rights reserved.

System status
Zindua
How it WorksPricingCompare
Sign in
Get started

Zindua for Node.js

Official @zindua/sdk v1.4.1. Send email and WhatsApp OTP from Express, Fastify, Nest, or Next.js. API key stays on the server.

npm install @zindua/sdk

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.

CLI & npx

Send from the terminal with npx @zindua/cli — same templates and variables as the SDK.

logId tracing

Every send returns a logId. Open Dashboard → Logs or use the CLI to trace delivery.

Start where you already build

Node guides for Next and Fastify, plus the other official stacks on Zindua.

Next.js

Node

OTP starter with @zindua/create-app.

Open guide

React Email

React

Migrate from Nodemailer, SendGrid, or SES. Keep your provider.

Open guide

Fastify

Node

Node backend with @zindua/sdk. Add Fastify separately as your HTTP framework.

Open guide

FastAPI

Python

Async Python routes with httpx.

Open guide

PHP

PHP

Laravel, Symfony, WordPress custom.

Open guide
.NET

.NET

.NET

ASP.NET Core with Zindua.Sdk NuGet.

Open guide

WordPress

PHP

Plugin for OTP login and WooCommerce.

Open guide

API keys never leave Node

The SDK throws in the browser. Your app calls your backend; your backend calls Zindua.

Browser

(no direct access)

Cannot call SDK

Your Node backend

Zindua API

API key stays on the server

Browser → your API → Zindua

  • 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

From project key to traced delivery.

From project key to first OTP in four steps.

Step 0101

Create a project

Sign up at zindua.run, create a project, copy the API key. Connect email and/or WhatsApp in the dashboard.

Install and send

Pick a use case, switch language, copy the snippet. Same API across Node, Python, PHP, and .NET.

Send OTP email

POST

Deliver a template to any inbox with one server-side call.

send.ts

1import { Zindua } from "@zindua/sdk";2 3const zindua = new Zindua({4  apiKey: process.env.ZINDUA_API_KEY!,5});6 7const result = await zindua.send({8  to: "user@example.com",9  template: "otp-verification",10  variables: { code: "482910" },11});12 13console.log(result.logId);

Same send() shape on Node, Python, PHP, and .NET.

Upgrade, CLI, and starter

Pin versions in production. Use the CLI for quick sends. Scaffold Next.js with one command.

Upgrade

npm install @zindua/sdk@1.4.1

CLI

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-app

Ship OTP on Node today

Create a project, install @zindua/sdk, and send your first template from a server route.

Open dashboardNext.js starter