Basically I just want to view Amazon by category but then it shows books I already have.

  • Platform: Any; really don't care - browser extension, web-app, desktop app whatever. except Mac/iOS.
  • Pricing: Free would be great but anything
  • Features:
    • Country selectable (required: unless open-source in which case I can hard code to swap between - ugly option but I'd take it)
    • Hide bought items (required: However the method that it determines what you own I'm fine with being basically anything other than single item data entry - good: read my amazon history. best: read my Kindle or Calibri library)
    • Bonus: regex hide/show abilities
    • Bonus: customize number of results to show per page
  • Output: Really don't care - sure it'd be nice to have a groovy GUI but heck even if it just output a comma separated list that'd be fine.
  • Bonus: Open Source - if open source/source code available the other requirements are slightly laxer as I can extend (especially the how for adding bought items).
  • I don't have a perfect match for you (the "anything other than single item data entry" kills it ;). But if you can export ASINs of the articles to exclude, are fine with building the end-solution yourself, and PHP is an option, I could offer you a nice little library I've just built (and which you could extend to your needs). Additional requirement would be an Amazon PartnerNet account (AWS), as it uses the AWS API. If that's an option, let me know, and I set up an answer.
    – Izzy
    Apr 24, 2014 at 8:14
  • @Izzy That'd be fine (and PHP is my favourite language so that's nice) Slightly edited the last line; so now it is clearly a fine answer according to the question. Apr 24, 2014 at 16:05
  • 1
    Sorry for the delay, Nick: I've just finished my work on the API last night, and didn't want to put out anything that's not ready. Hope it's useful to you; works smoothly on one of my sites already :)
    – Izzy
    Apr 25, 2014 at 18:54
  • 1
    @Izzy No worries, I should be able to pretty easily just scrape my current collection's info and then whip it up nicely. Guess I'll start off with a self-hosted web-app and then if I really like it I might have to make it public. Apr 25, 2014 at 19:08

1 Answer 1


I've just found a nice PHP API which can be used for that. As it was last updated in 2011, I took the freedom to go over it, do a little cleanup, some adjustments, added ApiDoc – and finally extended it a little. From the description:

Amazons Product Advertising API for PHP

This is a collection of PHP classes to enable you to access the Amazons Product Advertising API easily from within PHP – with the goal of placing some ads on your site, so they generate you some money to make up for all the hard work you put into building and maintaining it, whenever a visitor clicks an ad and buys something at Amazon.

I've sent all my modifications "upstream", and also made the classes available here.

Though it's basically intended to get some revenue by placing ads on your website, that of course requires you can browse the catalog. I cannot give a full documentation on that here (an API reference is included in the download), the pointer is BrowseNode (a node is basically a category or sub-category). You will most likely need to extend the API yourself for that specific need, but it should get you started. More pointers in the included documentation, but to give credit to the original work:

My extensions have been placed in separate files (caching, and multi-requests), all described inside. But you will most likely not need those, as I've not included any BrowseNode features.

I'm using this API myself, of course, and must say it works smoothly. Will not praise my own work, but my predecessors did a great job!

Explicit disclosure: I worked on that code myself.


  • Amazon accounts: AWS, PartnerNet
  • an associate ID you can generate at the PartnerNet site
  • a pair of public/private key you can create at the AWS site
  • PHP with curl support (e.g. PHP5 with php5-curl on Debian)
  • some coding knowledge: this is an API, i.e. an Application Programmers Interface – not a ready-to-use application

How it meets your request

  • Platform: Any PHP is platform independent, so yes
  • Pricing: Free Yes, and OpenSource. There's no "named license", but the original code states Permission is hereby granted […] to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense […] I've not attached any license to my code yet, but it would either be GPL or CC-BY-NC-SA if I do, so free and Open Source as well.
  • Features: up to you, it's an API. I've already included some "filtering" in my extension (basically to filter out "duplicates" where titles are too-close matches), so you could even pick the one or other example there.
  • Output: Again up to you :)
  • Bonus: Granted, all Open Source.

Hope that's somehow useful (feedback welcome), as I cannot tell anything on how the BrowseNode stuff works (not yet used that part).

  • great :D that looks pretty much perfect. Now I guess I'll have to make some time to do what I want to do (well I think I should be able to do that soon - if I can do some more tasks on how speed like that tax return I just did from scratch to sent in 9 minutes from sitting down to a turned-off computer) Apr 25, 2014 at 19:07
  • Glad to read it looks promising to you as well! I happily integrate your enhancements when they're ready. As you aim completely different functionality, I'd suggest using your own class file(s) for that, which makes the integration task easier then :) Good luck with it, and enjoy!
    – Izzy
    Apr 25, 2014 at 19:17
  • 1
    Oh yeah great - I'll be setting it up as my own local git environment and while I do have my own style that I prefer I (of course) match existing styles. Apr 25, 2014 at 19:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.