Docs/SDKs/Node.js
🟢

Node.js SDK

Official Node.js library for the RocketVerifier API. Supports both CommonJS and ES Modules with full TypeScript support.

Installation

npm
npm install @rocketverifier/sdk
yarn
yarn add @rocketverifier/sdk

Quick Start

JavaScript
import RocketVerifier from '@rocketverifier/sdk';

// Initialize with your API key
const rv = new RocketVerifier('rv_live_xxxxxxxx');

// Verify a single email
const result = await rv.verify('user@example.com');

console.log(result.status);      // 'deliverable'
console.log(result.score);       // 95
console.log(result.provider);    // 'google.com'

Single Verification

const result = await rv.verify('user@example.com');

// Result object
{
  email: 'user@example.com',
  status: 'deliverable',        // deliverable, undeliverable, risky, unknown
  reason: 'accepted_email',
  score: 95,                    // 0-100
  domain: {
    name: 'example.com',
    acceptAll: false,
    disposable: false,
    free: false
  },
  provider: 'google.com'
}

Batch Verification

// Create a batch verification job
const job = await rv.batch.create({
  name: 'My Email List',
  emails: ['user1@example.com', 'user2@example.com', ...],
  webhookUrl: 'https://yoursite.com/webhook'  // Optional
});

console.log(job.id);  // 'job_abc123'

// Check job status
const status = await rv.batch.get(job.id);
console.log(status.status);         // 'processing'
console.log(status.processedEmails); // 150

// Wait for completion (with polling)
const completed = await rv.batch.wait(job.id, {
  pollInterval: 5000,  // Check every 5 seconds
  timeout: 300000      // Timeout after 5 minutes
});

// Download results
const results = await rv.batch.download(job.id);
console.log(results.length);  // 1000

Domain Check

const domain = await rv.domain.check('example.com');

console.log(domain.provider);    // 'google.com'
console.log(domain.acceptAll);   // false
console.log(domain.disposable);  // false
console.log(domain.hasValidMx);  // true
console.log(domain.mxRecords);   // [{ priority: 10, host: 'aspmx.l.google.com' }]

Error Handling

import RocketVerifier, { 
  RocketVerifierError,
  InsufficientCreditsError,
  RateLimitError,
  AuthenticationError
} from '@rocketverifier/sdk';

try {
  const result = await rv.verify('user@example.com');
} catch (error) {
  if (error instanceof InsufficientCreditsError) {
    console.log('Need more credits:', error.creditsRequired);
  } else if (error instanceof RateLimitError) {
    console.log('Rate limited. Retry after:', error.retryAfter);
  } else if (error instanceof AuthenticationError) {
    console.log('Invalid API key');
  } else {
    console.log('Unknown error:', error.message);
  }
}

TypeScript Support

The SDK includes full TypeScript definitions out of the box:

import RocketVerifier, { 
  VerificationResult, 
  BatchJob,
  DomainInfo,
  EmailStatus
} from '@rocketverifier/sdk';

const rv = new RocketVerifier('rv_live_xxx');

// Fully typed responses
const result: VerificationResult = await rv.verify('user@example.com');

// Type-safe status checks
if (result.status === 'deliverable') {
  console.log('Email is valid!');
}

Configuration

const rv = new RocketVerifier('rv_live_xxx', {
  // Custom timeout (default: 30000ms)
  timeout: 60000,
  
  // Custom base URL (for testing)
  baseUrl: 'https://api.rocketverifier.com',
  
  // Retry failed requests (default: 3)
  maxRetries: 5,
  
  // Custom headers
  headers: {
    'X-Custom-Header': 'value'
  }
});

Features

Full TypeScript support
ES Modules & CommonJS
Automatic retries
Rate limit handling
Promise-based API
Zero dependencies
View on GitHubView on npm