npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

smsnova-sdk

v1.0.0

Published

Official Node.js SDK for SMSNova temporary phone number and automated SMS OTP verification API.

Downloads

204

Readme

SMSNova Node.js SDK

npm version License: MIT

The official Node.js client for requesting a temporary phone number, checking SMS activation inventory, and retrieving OTP verification messages through the SMSNova API.

Use temporary numbers only where permitted by the target platform, applicable law, and SMSNova's policies. This package is intended for legitimate testing, privacy, and account-verification workflows—not spam, fraud, account farming, or bypassing platform controls.

Requirements

  • Node.js 18 or newer
  • An SMSNova API key

Installation

npm install smsnova-sdk

Quick Start

Keep API keys on your server and load them from environment variables. Never commit a key or expose it in browser code.

const SMSNova = require('smsnova-sdk');

const client = new SMSNova(process.env.SMSNOVA_API_KEY);

async function verify() {
  const balance = await client.getBalance();
  console.log('Balance:', balance);

  const order = await client.getNumber('telegram', 'in');
  console.log('Allocated order:', order);

  const result = await client.waitForOTP(order.id);
  console.log('OTP response:', result);
}

verify().catch((error) => {
  console.error(error.name, error.status, error.message);
  process.exitCode = 1;
});

The client defaults to https://smsnova.net/api/v1 and sends the API key as a Bearer token. If your SMSNova account uses another API prefix, pass its documented URL:

const client = new SMSNova(process.env.SMSNOVA_API_KEY, {
  baseURL: process.env.SMSNOVA_API_URL,
  timeout: 30_000
});

API Reference

All methods return the parsed response body and reject with SMSNovaError when a network or API request fails.

| Method | Description | | --- | --- | | getBalance() | Query the current account balance. | | getServices() | Fetch available services and rates. | | getCountries() | Fetch supported country codes. | | getNumber(serviceCode, countryCode = 'vn') | Allocate a temporary number and create an order. | | getOTP(orderId) | Retrieve the current order, SMS content, and OTP. | | cancelOrder(orderId) | Cancel an active order. | | waitForOTP(orderId, timeoutMs = 60000, intervalMs = 3000) | Poll until an otp or code is returned. |

Named exports are also available:

const { SMSNova, SMSNovaError } = require('smsnova-sdk');

Error Handling

const { SMSNovaError } = require('smsnova-sdk');

try {
  await client.getBalance();
} catch (error) {
  if (error instanceof SMSNovaError) {
    console.error({
      message: error.message,
      status: error.status,
      code: error.code,
      details: error.details
    });
  }
}

Supported Countries & Regions

Availability and pricing can change. Call getCountries() for live inventory.

| Country or region | SMSNova information | | --- | --- | | India | Temporary Phone Number India | | United States | Temporary Phone Number USA | | Nigeria | Temporary Phone Number Nigeria | | Bangladesh | Temporary Phone Number Bangladesh | | Egypt | Temporary Phone Number Egypt | | All locations | View all supported countries |

Supported Services & Platforms

Service availability depends on country and current inventory. Call getServices() for live rates.

| Platform | SMS verification information | | --- | --- | | Telegram | SMS Verification for Telegram | | Facebook | SMS Verification for Facebook | | TikTok / Douyin | SMS Verification for Tiktok | | Google / Gmail / YouTube | SMS Verification for Google | | X / Twitter | SMS Verification for X | | Apple | SMS Verification for Apple | | All platforms | View all supported services |

Security & Compliance

  • Store API keys in a secrets manager or environment variable.
  • Do not log credentials, authorization headers, full phone numbers, or SMS contents.
  • Set reasonable polling intervals and handle rate limits returned by the API.
  • Cancel unused orders and retain verification data only as long as necessary.
  • Review the SMSNova Privacy Policy and comply with all applicable laws and third-party platform terms.

To report a suspected vulnerability privately, email [email protected]. Please do not disclose unresolved security issues in a public ticket.

Official Community & Socials

License

Released under the MIT License.