About amazon-data
Amazon Data Skill retrieves Amazon product and marketplace data through Canopy API REST endpoints using Python. It is intended for developers and data workflows that need product, review, seller, deal, and category information.
Key features
- 01Product details, variants, and identifiers
- 02Sales and stock estimates
- 03Reviews and seller offers
- 04Keyword search with filters
- 05Deals, best sellers, and categories
Use cases
- 01Researching products across Amazon domains
- 02Comparing reviews, offers, and prices
- 03Tracking product sales and stock estimates
- 04Finding deals and category best sellers
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ canopy-api/ skills --skill amazon-dataAfter installing, type/amazon-datain Claude Code to confirm it loaded.
Details
From the project READMEAmazon Data Skill
Use this skill to retrieve Amazon product data via the Canopy API REST endpoints using Python.
Canopy API provides real-time access to 350M+ Amazon products across 25K+ categories. With this skill you can fetch:
- Product details — titles, descriptions, pricing, images, feature bullets, and brand info
- Sales and stock estimates — weekly, monthly, and annual unit sales alongside current stock levels
- Reviews — ratings, review text, verified purchase status, and helpful vote counts
- Search — find products by keyword with filters for price, condition, category, and sort order
- Offers — compare pricing and fulfillment details across multiple sellers
- Deals — browse current Amazon deals and discounts across 12 international domains
- Categories — navigate the full Amazon category taxonomy
- Sellers and authors — look up seller profiles, ratings, and author bibliographies
- Best sellers — top-ranked products across Amazon's category taxonomy
- Identifier conversion — translate between ASINs and GTINs (ISBN/UPC/EAN)
Setup
- Sign up and create an account at canopyapi.co
- Get an API key from your dashboard
- Set the API key in your environment:
export API_KEY="your_api_key_here"
Base URL
https://rest.canopyapi.co
Authentication
All requests require the API-KEY header:
import os
import requests
API_KEY = os.environ["API_KEY"]
BASE_URL = "https://rest.canopyapi.co"
HEADERS = {"API-KEY": API_KEY}
Endpoints
Get Product Information
response = requests.get(f"{BASE_URL}/api/amazon/product", headers=HEADERS, params={
"asin": "B01HY0JA3G", # or use "url" or "gtin"
"domain": "US", # optional, defaults to "US"
})
Returns product title, brand, price, rating, images, feature bullets, categories, and seller info.
Convert ASIN to GTIN
response = requests.get(f"{BASE_URL}/api/amazon/product/gtin-from-asin", headers=HEADERS, params={
"asin": "B01HY0JA3G",
"domain": "US", # optional
})
Convert GTIN to ASIN
response = requests.get(f"{BASE_URL}/api/amazon/product/asin-from-gtin", headers=HEADERS, params={
"gtin": "9780141036144",
"domain": "US", # optional
})
Get Product Variants
response = requests.get(f"{BASE_URL}/api/amazon/product/variants", headers=HEADERS, params={
"asin": "B01HY0JA3G",
})
Get Stock Estimates
response = requests.get(f"{BASE_URL}/api/amazon/product/stock", headers=HEADERS, params={
"asin": "B01HY0JA3G",
})
Get Sales Estimates
response = requests.get(f"{BASE_URL}/api/amazon/product/sales", headers=HEADERS, params={
"asin": "B01HY0JA3G",
})
Returns weekly, monthly, and annual unit sales estimates.
Get Product Reviews
response = requests.get(f"{BASE_URL}/api/amazon/product/reviews", headers=HEADERS, params={
"asin": "B01HY0JA3G",
"page": 1, # optional
"onlyVerifiedReviews": True, # optional
"rating": "5", # optional, filter by star rating
"search": "battery life", # optional, filter by search term
})
Get Product Offers
response = requests.get(f"{BASE_URL}/api/amazon/product/offers", headers=HEADERS, params={
"asin": "B01HY0JA3G",
"page": 1, # optional
})
Search Products
response = requests.get(f"{BASE_URL}/api/amazon/search", headers=HEADERS, params={
"searchTerm": "wireless headphones",
"domain": "US", # optional
"categoryId": "172282", # optional, filter to a category
"page": 1, # optional
"limit": 20, # optional, 20-40
"minPrice": 10, # optional
"maxPrice": 100, # optional
"conditions": "NEW", # optional: NEW, USED, RENEWED (comma-separated)
"sort": "FEATURED", # optional: FEATURED, MOST_RECENT, PRICE_ASCENDING, PRICE_DESCENDING, AVERAGE_CUSTOMER_REVIEW
})
Get Autocomplete Suggestions
response = requests.get(f"{BASE_URL}/api/amazon/autocomplete", headers=HEADERS, params={
"searchTerm": "wireless",
"domain": "US", # optional
"category": "aps", # optional, Amazon autocomplete_alias (e.g. "electronics")
})
Get Category Taxonomy
response = requests.get(f"{BASE_URL}/api/amazon/categories", headers=HEADERS, params={
"domain": "US", # optional
})
Get Category Information
response = requests.get(f"{BASE_URL}/api/amazon/category", headers=HEADERS, params={
"categoryId": "1234567890",
"domain": "US", # optional
"page": 1, # optional
"sort": "FEATURED", # optional
})
Get Seller Information
response = requests.get(f"{BASE_URL}/api/amazon/seller", headers=HEADERS, params={
"sellerId": "A2R2RITDJNW1Q6",
"domain": "US", # optional
"page": 1, # optional
})
Get Author Information
response = requests.get(f"{BASE_URL}/api/amazon/author", headers=HEADERS, params={
"asin": "B000AQ5RM0",
"domain": "US", # optional
"page": 1, # optional
})
Get Deals
response = requests.get(f"{BASE_URL}/api/amazon/deals", headers=HEADERS, params={
"domain": "US", # optional
"page": 1, # optional
"limit": 20, # optional
"categoryIds": "3760911,172282", # optional, comma-separated category IDs
})
Get Best Sellers
response = requests.get(f"{BASE_URL}/api/amazon/bestsellers", headers=HEADERS, params={
"categoryId": "bestsellers_amazon_devices", # required if url not provided
# "url": "https://www.amazon.com/Best-Sellers/zgbs", # required if categoryId not provided
"domain": "US", # optional
"page": 1, # optional
"limit": 50, # optional, typically 20-50 per page
})
Returns ranked products with rank position, ratings, and category navigation info.
Get Best Seller Categories
response = requests.get(f"{BASE_URL}/api/amazon/bestseller-categories", headers=HEADERS, params={
"domain": "US", # optional
})
Returns top-level best seller category IDs (e.g. bestsellers_amazon_devices) to feed into /api/amazon/bestsellers.
Product Lookup Options
Product endpoints accept one of these identifiers:
| Parameter | Description | Example |
|---|---|---|
asin | Amazon product ASIN | B01HY0JA3G |
url | Full Amazon product URL | https://amazon.com/dp/B01HY0JA3G |
gtin | ISBN, UPC, or EAN code | 9780141036144 |
Supported Domains
US (default), UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP, PL
Error Handling
| Status | Meaning |
|---|---|
| 400 | Invalid parameters |
| 401 | Invalid or missing API key |
| 402 | Payment required |
| 500 | Server error |
response = requests.get(f"{BASE_URL}/api/amazon/product", headers=HEADERS, params={"asin": "B01HY0JA3G"})
if response.ok:
data = response.json()
else:
print(f"Error {response.status_code}: {response.text}")