search

Amazon Data

Verified

by rhino88

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 -

View on GitHub

Amazon 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

Setup

  1. Sign up and create an account at canopyapi.co
  2. Get an API key from your dashboard
  3. 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.

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",
})

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
    "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",
})

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: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP
    "page": 1,       # optional
    "limit": 20,     # optional
})

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

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}")