🟢
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/sdkyarn
yarn add @rocketverifier/sdkQuick 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); // 1000Domain 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
