ReachScore Docs

Quickstart: TypeScript

Integrate ReachScore into your TypeScript or Node.js application.

1

Install the SDK

Install the official ReachScore SDK using npm or yarn:

npm install @reachscore/sdk
# or
yarn add @reachscore/sdk
2

Initialize the client

Create a new client instance with your API key:

import ReachScore from '@reachscore/sdk';

const reachscore = new ReachScore({
  apiKey: process.env.REACHSCORE_API_KEY,
});
3

Create a test

Create a new deliverability test:

const test = await reachscore.tests.create({
  from_address: 'notifications@yourcompany.com',
  subject: 'Test email deliverability',
});

console.log('Send your email to:', test.test_address);
// test.test_address = "test_7xK2mN9p@inbound.reachscore.co"
4

Get the results

After sending your email, retrieve the test results:

// Poll for results (or use webhooks)
const result = await reachscore.tests.get(test.id);

if (result.status === 'completed') {
  console.log('Deliverability Score:', result.score);
  console.log('Grade:', result.grade);
  console.log('SPF:', result.auth_results.spf);
  console.log('DKIM:', result.auth_results.dkim);
  console.log('DMARC:', result.auth_results.dmarc);
}

Complete Example

Here is a full working example that creates a test and waits for results:

import ReachScore from '@reachscore/sdk';

async function runDeliverabilityTest() {
  const reachscore = new ReachScore({
    apiKey: process.env.REACHSCORE_API_KEY,
  });

  // Create the test
  const test = await reachscore.tests.create({
    from_address: 'notifications@yourcompany.com',
    subject: 'Weekly newsletter',
  });

  console.log(`Test created: ${test.id}`);
  console.log(`Send email to: ${test.test_address}`);

  // Wait for results (in production, use webhooks instead)
  let result = test;
  while (result.status !== 'completed' && result.status !== 'failed') {
    await new Promise(resolve => setTimeout(resolve, 5000));
    result = await reachscore.tests.get(test.id);
    console.log(`Status: ${result.status}`);
  }

  if (result.status === 'completed') {
    console.log(`Score: ${result.score}/100 (Grade: ${result.grade})`);
    console.log(`Auth: SPF=${result.auth_results.spf}, DKIM=${result.auth_results.dkim}, DMARC=${result.auth_results.dmarc}`);
  }
}

runDeliverabilityTest();

TypeScript Types

The SDK includes full TypeScript definitions for all API responses:

import type { Test, TestResult, AuthResults } from '@reachscore/sdk';

const test: Test = await reachscore.tests.create({ /* ... */ });

// Full autocomplete and type checking
if (test.auth_results) {
  const spfResult: 'pass' | 'fail' | 'softfail' | 'neutral' = test.auth_results.spf;
}