node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



nodejs Amazon MWS API in 100 lines of code

which means that you will have to do more work in order to make api calls but gives you the most control. Response uses xml2js or csv-parse for conversion.

Defaults to US marketplace settings, but can code to override default ## Installation

npm install mws-simple


let mws = require('mws-simple')({
  accessKeyId: YOUR ACCESS KEY,
  secretAccessKey: YOUR ACCESS KEY,
  merchantId: YOUR MERCHANT ID
Build a request object containing query and optionally path, headers, and feedContent

Of the required parameters, AWSAccessKeyId, SellerId, Signature, SignatureMethod, SignatureVersion, and Timestamp will be taken care of but most can be overridden. This leaves Action, MWSAuthToken (for web applications and third-party developer authorizations only), and Version required to be populated.

Add the query parameters to query as needed for your specific Action.

If the API has an endpoint as specified in the documentation, put the endpoint in path.

For uploading data to MWS, populate feedContent with a buffer of data.

Invoke request with your request object.


List Orders (open and created in last 24 hours):

let date = new Date();
date.setDate(date.getDate() - 1);
// create object with path and query 
let listOrders = {
  path: '/Orders/2013-09-01',
  query: {
    Action: 'ListOrders',
    CreatedAfter: date.toISOString(),
    'MarketplaceId.Id.1': 'ATVPDKIKX0DER',
    'OrderStatus.Status.1': 'Unshipped',
    'OrderStatus.Status.2': 'PartiallyShipped',
    Version: '2013-09-01'
mws.request(listOrders, function(e, result) {

Submit Shipments File:

let submitFeed = {
  feedContent: require('fs').readFileSync(''),
  query: {
    Action: 'SubmitFeed',
    Version: '2009-01-01',
    'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER',
mws.request(submitFeed, function(e, result) {


Yes, please!


Thank you!