Skip to main content

ProductAdvertisingAPI 5.0 Python SDK

Project description

Product Advertising API 5.0 SDK for Python (v1)

About This Package

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.

The code in this package was written entirely by Amazon.com. Based on the original documentation, it appears that Amazon originally intended to make this package available via pip; however, it appears that either (a) that never happened or (b) they removed it. We created this package to correct that.

The only changes we made to Amazon's original package were:

  1. Modifying this README file to reflect the correct pip package information
  2. Modifying the setup.py file

Documentation and Original SDK

Amazon's documentation for the Product Advertising API can be found at:

https://webservices.amazon.com/paapi5/documentation/index.html

You can download the original SDK from Amazon.com at:

https://webservices.amazon.com/paapi5/documentation/quick-start/using-sdk.html

Requirements

Python 2.7 and 3.4+

Installation & Usage

pip install

You can directly install it from pip using:

pip install amightygirl.paapi5-python-sdk

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 All categories:

from __future__ import print_function

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


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 = "All"

    """ 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.IMAGES_PRIMARY_LARGE,
        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

amightygirl.paapi5-python-sdk-1.0.0.tar.gz (52.0 kB view details)

Uploaded Source

Built Distribution

amightygirl.paapi5_python_sdk-1.0.0-py3-none-any.whl (179.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: amightygirl.paapi5-python-sdk-1.0.0.tar.gz
  • Upload date:
  • Size: 52.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.8.0

File hashes

Hashes for amightygirl.paapi5-python-sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9d1f03bca56911e1dc779e81202260988cfea3f48bc71d5fb5688e2ee79c709b
MD5 c847b5caf023231055b0240fd0300561
BLAKE2b-256 12a380923767044df21f8d80c84a25f2995d7f433cb8c2f3416e61c824b141c5

See more details on using hashes here.

File details

Details for the file amightygirl.paapi5_python_sdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: amightygirl.paapi5_python_sdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 179.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.8.0

File hashes

Hashes for amightygirl.paapi5_python_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03703b228f8f93f1d3473e98054ebde7a4ca3184dd7f3645b4b95f4cdf9229d1
MD5 4d63ace53f6d550fa87051cefb259a9c
BLAKE2b-256 7dc3382bef55a6d94584b2c23812cf06da8250f29061a6bfb36dc5764a633368

See more details on using hashes here.

Supported by

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