Skip to main content

ProductAdvertisingAPI 5.0 Python SDK

Project description

Product Advertising API 5.0 SDK for Python

pypi version pypi downloads

This repository contains the official Product Advertising API 5.0 Python SDK called paapi5-python-sdk that allows you to access the Product Advertising API from your Python app.

Requirements

Python 2.7 and 3.4+

Installation & Usage

pip install

You can directly install it from pip using:

pip install paapi5-python-sdk

Or, you may also install directly from Github

pip install git+https://github.com/amzn/paapi5-python-sdk.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/amzn/paapi5-python-sdk.git)

Then import the package:

import paapi5_python_sdk 

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import paapi5_python_sdk

Getting Started

Please follow the installation procedure and then run the following:

Simple example for SearchItems to discover Amazon products with the keyword 'Harry Potter' in Books category:

from paapi5_python_sdk.api.default_api import DefaultApi
from paapi5_python_sdk.models.partner_type import PartnerType
from paapi5_python_sdk.rest import ApiException
from paapi5_python_sdk.models.search_items_request import SearchItemsRequest
from paapi5_python_sdk.models.search_items_resource import SearchItemsResource


def search_items():

    """ Following are your credentials """
    """ Please add your access key here """
    access_key = "<YOUR ACCESS KEY>"

    """ Please add your secret key here """
    secret_key = "<YOUR SECRET KEY>"

    """ Please add your partner tag (store/tracking id) here """
    partner_tag = "<YOUR PARTNER TAG>"

    """ PAAPI host and region to which you want to send request """
    """ For more details refer: https://webservices.amazon.com/paapi5/documentation/common-request-parameters.html#host-and-region"""
    host = "webservices.amazon.com"
    region = "us-east-1"

    """ API declaration """
    default_api = DefaultApi(
        access_key=access_key, secret_key=secret_key, host=host, region=region
    )

    """ Request initialization"""

    """ Specify keywords """
    keywords = "Harry Potter"

    """ Specify the category in which search request is to be made """
    """ For more details, refer: https://webservices.amazon.com/paapi5/documentation/use-cases/organization-of-items-on-amazon/search-index.html """
    search_index = "Books"

    """ Specify item count to be returned in search result """
    item_count = 1

    """ Choose resources you want from SearchItemsResource enum """
    """ For more details, refer: https://webservices.amazon.com/paapi5/documentation/search-items.html#resources-parameter """
    search_items_resource = [
        SearchItemsResource.ITEMINFO_TITLE,
        SearchItemsResource.OFFERS_LISTINGS_PRICE,
    ]

    """ Forming request """
    try:
        search_items_request = SearchItemsRequest(
            partner_tag=partner_tag,
            partner_type=PartnerType.ASSOCIATES,
            keywords=keywords,
            search_index=search_index,
            item_count=item_count,
            resources=search_items_resource,
        )
    except ValueError as exception:
        print("Error in forming SearchItemsRequest: ", exception)
        return

    try:
        """ Sending request """
        response = default_api.search_items(search_items_request)

        print("API called Successfully")
        print("Complete Response:", response)

        """ Parse response """
        if response.search_result is not None:
            print("Printing first item information in SearchResult:")
            item_0 = response.search_result.items[0]
            if item_0 is not None:
                if item_0.asin is not None:
                    print("ASIN: ", item_0.asin)
                if item_0.detail_page_url is not None:
                    print("DetailPageURL: ", item_0.detail_page_url)
                if (
                    item_0.item_info is not None
                    and item_0.item_info.title is not None
                    and item_0.item_info.title.display_value is not None
                ):
                    print("Title: ", item_0.item_info.title.display_value)
                if (
                    item_0.offers is not None
                    and item_0.offers.listings is not None
                    and item_0.offers.listings[0].price is not None
                    and item_0.offers.listings[0].price.display_amount is not None
                ):
                    print(
                        "Buying Price: ", item_0.offers.listings[0].price.display_amount
                    )
        if response.errors is not None:
            print("\nPrinting Errors:\nPrinting First Error Object from list of Errors")
            print("Error code", response.errors[0].code)
            print("Error message", response.errors[0].message)

    except ApiException as exception:
        print("Error calling PA-API 5.0!")
        print("Status code:", exception.status)
        print("Errors :", exception.body)
        print("Request ID:", exception.headers["x-amzn-RequestId"])

    except TypeError as exception:
        print("TypeError :", exception)

    except ValueError as exception:
        print("ValueError :", exception)

    except Exception as exception:
        print("Exception :", exception)

search_items()

Complete documentation, installation instructions, and examples are available here.

License

This SDK is distributed under the Apache License, Version 2.0, see LICENSE.txt and NOTICE.txt for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qempo-paapi5-python-sdk-1.0.0.tar.gz (58.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qempo_paapi5_python_sdk-1.0.0-py3-none-any.whl (187.9 kB view details)

Uploaded Python 3

File details

Details for the file qempo-paapi5-python-sdk-1.0.0.tar.gz.

File metadata

  • Download URL: qempo-paapi5-python-sdk-1.0.0.tar.gz
  • Upload date:
  • Size: 58.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for qempo-paapi5-python-sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 99d7279b08c2f3cffa30b5dd643ed3342f9a0f921bd95140a6a52e2b993b95d2
MD5 d0b27c9a69a45825a8db1a6474db6bd2
BLAKE2b-256 4675a6056923a7da8b604203ad3b1818c07df0a63b36c16fefaf1a3513d012f0

See more details on using hashes here.

File details

Details for the file qempo_paapi5_python_sdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: qempo_paapi5_python_sdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 187.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for qempo_paapi5_python_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3206d3dbddde26b9f9e78afb67b827bcb5743780ce377b08085635b0835aa602
MD5 7ece2379520de725ec46b1b3f51451e2
BLAKE2b-256 1f19ef0d318248ea62cb9317777db425cd4b524c21a0a4d49333112aaaf98204

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page