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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@indigov/sparkpost

v2.1.8

Published

A Node.js wrapper for interfacing with your favorite SparkPost APIs

Downloads

498

Readme

Sign up for a SparkPost account and visit our Developer Hub for even more content.

Node.js Client Library

Travis CI Coverage Status NPM version

The official Node.js binding for your favorite SparkPost APIs!

Prerequisites

Before using this library, you must have:

Installation

npm install sparkpost

Note: Node.js versions 0.10 and 0.12 are no longer supported.

Initialization

new SparkPost(apiKey[, options]) - Initialization

  • apiKey
    • Required: yes (unless key is stored in SPARKPOST_API_KEY environment variable)
    • Type: String
    • a passed in apiKey will take precedence over an environment variable
  • options.origin or options.endpoint
    • Required: no
    • Type: String
    • Default: https://api.sparkpost.com:443 Note: To use the SparkPost EU API you will need to set this to https://api.eu.sparkpost.com:443.
  • options.apiVersion
    • Required: no
    • Type: String
    • Default: v1
  • options.stackIdentity
    • Required: no
    • Type: String
    • An optional identifier to include in the User-Agent header. e.g. product/1.0.0
  • options.headers
    • Required: no
    • Type: Object
    • set headers that apply to all requests
  • options.debug
    • Required: no
    • Type: Boolean
    • Default: false
    • appends full response from request client as debug when true for debugging purposes Note: This will expose your api key to the client-side. Do not use in production.

Methods

Note: All methods return promises and accept an optional last argument callback. Read about how we handle callbacks and promises.

  • request(options[, callback])
    • options - see request modules options
    • options.uri - can either be a full url or a path that is appended to options.origin used at initialization (url.resolve)
    • options.debug - setting to true includes full response from request client for debugging purposes
  • get | post | put | delete(options[, callback])
    • options - see request options
    • Request method will be overwritten and set to the same value as the name of these methods.

Creating a SparkPost Client

Passing in an API key

const SparkPost = require('sparkpost')
const client = new SparkPost('YOUR_API_KEY')

Using an API key stored in an environment variable

//Create an env var as SPARKPOST_API_KEY
const SparkPost = require('sparkpost')
const client = new SparkPost()

Specifying non-default options

const SparkPost = require('sparkpost')
const options = {
  endpoint: 'https://dev.sparkpost.com:443'
}
const client = new SparkPost('YOUR_API_KEY', options)

Using the Node Client Library Base Object

We may not wrap every resource available in the SparkPost Client Library, for example the Node Client Library does not wrap the Metrics resource, but you can use the Node Client Library Base Object to form requests to these unwrapped resources. Here is an example request using the base object to make requests to the Metrics resource. Here is an example request using the base object to make requests to the Metrics resource.

// Get a list of domains that the Metrics API contains data on.
const options = {
  uri: 'metrics/domains'
}

client
  .get(options)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Send An Email "Hello World" Example

Below is an example of how to send a simple email. Sending an email is known as a transmission. By using the send method on the transmissions service that's available from the SparkPost object you instantiate, you can pass in an object with all the transmission attributes relevant to the email being sent. The send method will return a promise that will let you know if the email was sent successful and if not information about the error that occurred. If a callback is passed, it will be executed.

const SparkPost = require('sparkpost')
const client = new SparkPost('<YOUR API KEY>')

// If you have a SparkPost EU account you will need to pass a different `origin` via the options parameter:
// const euClient = new SparkPost('<YOUR API KEY>', { origin: 'https://api.eu.sparkpost.com:443' });

client.transmissions
  .send({
    options: {
      sandbox: true
    },
    content: {
      from: '[email protected]',
      subject: 'Hello, World!',
      html: "<html><body><p>Testing SparkPost - the world's most awesomest email service!</p></body></html>"
    },
    recipients: [{ address: '<YOUR EMAIL ADDRESS>' }]
  })
  .then((data) => {
    console.log('Woohoo! You just sent your first mailing!')
    console.log(data)
  })
  .catch((err) => {
    console.log('Whoops! Something went wrong')
    console.log(err)
  })

SparkPost API Resources Supported in Node Client Library

Click on the desired API to see usage and more information

Development

Setup

Run npm install inside the repository to install all the dev dependencies.

Testing

Once all the dependencies are installed, you can execute the unit tests using npm test

Contributing

Guidelines for adding issues

Our coding standards

Submitting pull requests

ChangeLog

See ChangeLog here