sergioteula / python-amazon-paapi

Amazon Product Advertising API 5.0 wrapper for Python 💰
MIT License
228 stars 46 forks source link
affiliate amazon amazon-product-advertising hacktoberfest paapi5 product python

Amazon Product Advertising API 5.0 wrapper for Python

A simple Python wrapper for the last version of the Amazon Product Advertising API. This module allows interacting with Amazon using the official API in an easier way.

PyPI Python License Amazon API Quality Gate Status Coverage PyPI - Downloads

Features

Installation

You can install or upgrade the module with:

pip install python-amazon-paapi --upgrade

Usage guide

Basic usage:

from amazon_paapi import AmazonApi
amazon = AmazonApi(KEY, SECRET, TAG, COUNTRY)
item = amazon.get_items('B01N5IB20Q')[0]
print(item.item_info.title.display_value) # Item title

Get multiple items information:

items = amazon.get_items(['B01N5IB20Q', 'B01F9G43WU'])
for item in items:
    print(item.images.primary.large.url) # Primary image url
    print(item.offers.listings[0].price.amount) # Current price

Use URL insted of ASIN:

item = amazon.get_items('https://www.amazon.com/dp/B01N5IB20Q')

Get item variations:

variations = amazon.get_variations('B01N5IB20Q')
for item in variations.items:
    print(item.detail_page_url) # Affiliate url

Search items:

search_result = amazon.search_items(keywords='nintendo')
for item in search_result.items:
    print(item.item_info.product_info.color) # Item color

Get browse node information:

browse_nodes = amazon.get_browse_nodes(['667049031', '599385031'])
for browse_node in browse_nodes:
    print(browse_node.display_name) # The name of the node

Get the ASIN from URL:

from amazon_paapi import get_asin
asin = get_asin('https://www.amazon.com/dp/B01N5IB20Q')

Throttling:

Throttling value represents the wait time in seconds between API calls, being the default value 1 second. Use it to avoid reaching Amazon request limits.

amazon = AmazonApi(KEY, SECRET, TAG, COUNTRY, throttling=4)  # Makes 1 request every 4 seconds
amazon = AmazonApi(KEY, SECRET, TAG, COUNTRY, throttling=0)  # No wait time between requests

Contribution

Creating pull requests for this repo is higly appreciated to add new features or solve bugs. To help during development process, githooks can be activated to run some scripts before pushing new commits. This will run checks for code format and tests, to ensure everything follows this repo guidelines. Use next command to activate them:

git config core.hooksPath .githooks

The same checks will also run on the repo with GitHub Actions to ensure all tests pass before merge.

License

Copyright © 2021 Sergio Abad. See license for details.