Skip to content

doodlemoonch/amazon-product-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js client for the Amazon Product Advertising API NPM version Dependency Status Build Status

Promise-based Node.js client for Amazon Product Advertising API

NPM

The major differences between this project and other implementations are:

  1. Item search returns an EcmaScript6 promise. (Check out a great article about ES6 promises)
  2. Item search is "yieldable". So it plays well with fantastic next-gen libs such as Koa and Co. See example
  3. The entire codebase is very small (~90 LOC)

Installation

Install using npm:

npm install amazon-product-api

Usage

###Basic usage

Require library

amazon = require('amazon-product-api');

Create client

var client = amazon.createClient({
	awsId: "aws ID",
	awsSecret: "aws Secret",
 	awsTag: "aws Tag"
});

Now you can search for items on amazon like this:

//search for Pulp Fiction dvd offers
client.itemSearch({
	keywords: 'Pulp fiction',
	searchIndex: 'DVD',
    responseGroup: 'ItemAttributes,Offers,Images'
}).then(function(results){
	console.log(results);
}).catch(function(error){
	console.log(error);
});

###Search query options:

condition: availiable options - 'All', 'New', 'Used', 'Refurbished', 'Collectible'. Defaults to 'All'
keywords: Defaults to ''
responseGroup: You can use multiple values by separating them with comma (e.g responseGroup: 'ItemAttributes,Offers,Images'). Defaults to'ItemAttributes'
searchIndex: Defaults to 'All'.

##Example ###Setup your own server that doesn't require signatures and timestamp and returns JSON

koa = require 'koa'
router = require 'koa-router'
amazonProductApi = require 'amazon-product-api' 

app = koa()
app.use router app

client = amazonProductApi.createClient
  awsTag: process.env.AWS_TAG
  awsId: process.env.AWS_ID
  awsSecret: process.env.AWS_SECRET
  
app.get '/amazon/:index', (next) ->*
  try
    searchResults = yield client.itemSearch
      keywords: @request.query.title
      searchIndex: @params.index
      responseGroup: 'ItemAttributes,Offers,Images'
    @body = searchResults
  catch error
    @body = error

app.listen process.env.PORT || 5000

Working demo:
Search for Alien DVDs
Search for Streets of Rage videogame
Search for shoes

About

Amazon Product Advertising API client

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CoffeeScript 53.5%
  • JavaScript 46.5%