# Installation You can install or upgrade the module with: ```bash pip install python-amazon-paapi --upgrade ``` # Usage Guide The `amazon_creatorsapi` module provides access to Amazon's Creators API. > **Note:** The `amazon_paapi` module is deprecated. New projects should use the Creators API. ## Basic Usage ```python from amazon_creatorsapi import AmazonCreatorsApi, Country api = AmazonCreatorsApi( credential_id="your_credential_id", credential_secret="your_credential_secret", version="2.2", tag="your-affiliate-tag", country=Country.US, ) # Get product information by ASIN items = api.get_items(["B01N5IB20Q"]) print(items[0].item_info.title.display_value) # Or use Amazon URLs directly items = api.get_items(["https://www.amazon.com/dp/B01N5IB20Q"]) ``` ## Get Multiple Items ```python items = api.get_items(["B01N5IB20Q", "B01F9G43WU"]) for item in items: print(item.images.primary.large.url) ``` ## Search Products ```python results = api.search_items(keywords="nintendo switch") for item in results.items: print(item.item_info.title.display_value) ``` ## Get Product Variations ```python # Using ASIN variations = api.get_variations("B01N5IB20Q") # Or using Amazon URL variations = api.get_variations("https://www.amazon.com/dp/B01N5IB20Q") for item in variations.items: print(item.detail_page_url) ``` ## Get Browse Node Information ```python nodes = api.get_browse_nodes(["667049031"]) for node in nodes: print(node.display_name) ``` ## Get the ASIN from URL ```python from amazon_creatorsapi import get_asin asin = get_asin("https://www.amazon.com/dp/B01N5IB20Q") ``` ## Using OffersV2 Resources OffersV2 provides enhanced pricing and offer details. All resources are included by default: ```python items = api.get_items(["B01N5IB20Q"]) item = items[0] if item.offers_v2 and item.offers_v2.listings: listing = item.offers_v2.listings[0] print(listing.price.money.amount) print(listing.merchant_info.name) ``` ## 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. ```python api = AmazonCreatorsApi(ID, SECRET, VERSION, TAG, COUNTRY, throttling=4) # Makes 1 request every 4 seconds api = AmazonCreatorsApi(ID, SECRET, VERSION, TAG, COUNTRY, throttling=0) # No wait time between requests ``` ## Async Support For async/await applications, install with async support: ```bash pip install python-amazon-paapi[async] --upgrade ``` The async API provides the same methods as the synchronous version: ```python from amazon_creatorsapi.aio import AsyncAmazonCreatorsApi from amazon_creatorsapi import Country # Use as async context manager (recommended for connection pooling) async with AsyncAmazonCreatorsApi( credential_id="your_credential_id", credential_secret="your_credential_secret", version="2.2", tag="your-affiliate-tag", country=Country.US, ) as api: # All methods work identically, just use await items = await api.get_items(["B01N5IB20Q"]) results = await api.search_items(keywords="laptop") variations = await api.get_variations("B01N5IB20Q") nodes = await api.get_browse_nodes(["667049031"]) # Or use without context manager (creates new connection per request) api = AsyncAmazonCreatorsApi(ID, SECRET, VERSION, TAG, COUNTRY) items = await api.get_items(["B01N5IB20Q"]) ``` > **Note:** All methods and parameters work identically in async mode. Use `async with` for better performance when making multiple requests. ## Working with Models All SDK models are re-exported through `amazon_creatorsapi.models` for convenient access: ```python from amazon_creatorsapi.models import ( Item, Condition, SortBy, GetItemsResource, SearchItemsResource, ) # Use Condition enum for filtering items = api.get_items(["B01N5IB20Q"], condition=Condition.NEW) # Use SortBy enum for search ordering results = api.search_items(keywords="laptop", sort_by=SortBy.PRICE_LOW_TO_HIGH) # Specify which resources to retrieve from amazon_creatorsapi.models import GetItemsResource resources = [GetItemsResource.ITEMINFO_TITLE, GetItemsResource.OFFERS_LISTINGS_PRICE] items = api.get_items(["B01N5IB20Q"], resources=resources) ```