EasyPost Shipping API Client Library for Node
Fetching latest commit…
Cannot retrieve the latest commit at this time.


EasyPost Node Client Library

EasyPost is a simple shipping API. You can sign up for an account at https://easypost.com



npm install --save @easypost/api

Note: if you are using a version of Node less than 6.9, you will need to install and include a polyfill, such as babel-polyfill, and include it in your project:

npm install --save babel-polyfill

In your file:

const EasyPost = require('@easypost/api');

To test out the API, you can run npm install -g @easypost/api and run easypost. you can also clone this repository, npm install to install dependencies, npm run build to build the project, and run API_KEY=yourkey ./repl.js --local easypost.js to try out an interactive CLI. (Replace easypost.js with whatever compatabile version you wish, as defined below.)


By default, @easypost/api works with Node v6 LTS. To include for other versions of node, you can use:

  • require('@easpost/api/easypost.8-lts.js') (Node 8.9+
  • require('@easpost/api/easypost.6-lts.js') (Node 6.9+)
  • require('@easpost/api/easypost.legacy.js') (Node 0.10+)


const apiKey = 'cueqNZUb3ldeWTNX7MU3Mel8UXtaAMUi';
const EasyPost = require('@easypost/api');

const api = new EasyPost(apiKey);

// set addresses
const toAddress = new api.Address({
  name: 'Dr. Steve Brule',
  street1: '179 N Harbor Dr',
  city: 'Redondo Beach',
  state: 'CA',
  zip: '90277',
  country: 'US',
  phone: '310-808-5243'

const fromAddress = new api.Address({
  name: 'EasyPost',
  street1: '118 2nd Street',
  street2: '4th Floor',
  city: 'San Francisco',
  state: 'CA',
  zip: '94105',
  phone: '415-123-4567'

/* es5 with promises: */
fromAddress.save().then(addr => {

/* es2017 with async/await: */
await fromAddress.save();

Note: if you are using es6, you can use import "@easypost/api/easypost" to avoid loading regenerator-runtime twice. We plan on supporting a node6+ version at some point as well for native generator support.