mcpField
A
amazon-data

amazon-data

github.com/canopy-apiデータ・データベース055 回インストール24 週間前に更新
リポジトリ

amazon-data について

Amazon Data Skillは、Canopy APIのRESTエンドポイントをPythonで呼び出し、Amazonの商品・マーケットプレイスデータを取得します。商品、レビュー、出品者、セール、カテゴリ情報を扱う開発やデータ処理向けです。

主な機能

  1. 01商品詳細、バリエーション、識別子の取得
  2. 02売上と在庫の推定値
  3. 03レビューと出品者のオファー
  4. 04条件指定付きキーワード検索
  5. 05セール、ベストセラー、カテゴリの取得

活用シーン

  1. 01Amazon各ドメインの商品調査
  2. 02レビュー、オファー、価格の比較
  3. 03商品の売上と在庫推定値の追跡
  4. 04セールやカテゴリ別ベストセラーの検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/canopy-api/skills --skill amazon-data

インストール後、Claude Code で/amazon-dataを入力して読み込まれたか確認します。

詳細

Amazon Data Skill

Python を使用して Canopy API の REST エンドポイント経由で Amazon の商品データを取得するには、このスキルを使用します。

Canopy API を使うと、25K 以上のカテゴリーにわたる 3 億 5,000 万点以上の Amazon 商品にリアルタイムでアクセスできます。このスキルでは、次の情報を取得できます。

  • 商品詳細 — 商品名、説明、価格、画像、特徴の箇条書き、ブランド情報
  • 販売数と在庫の推定値 — 現在の在庫数とあわせて、週次、月次、年次の販売数量
  • レビュー — 評価、レビュー本文、購入確認済みステータス、参考になった票数
  • 検索 — 価格、コンディション、カテゴリー、並べ替え順のフィルターを使って、キーワードで商品を検索
  • 出品情報 — 複数の出品者間で価格と配送情報を比較
  • セール — 12 の海外ドメインで、現在の Amazon のセールと割引を閲覧
  • カテゴリー — Amazon の全カテゴリー体系を参照
  • 出品者と著者 — 出品者のプロフィールや評価、著者の著作一覧を検索
  • ベストセラー — Amazon のカテゴリー体系全体における上位商品
  • 識別子の変換 — ASIN と GTIN(ISBN/UPC/EAN)を相互に変換

セットアップ

  1. canopyapi.co で登録してアカウントを作成します
  2. ダッシュボードから API キーを取得します
  3. 環境に API キーを設定します。
export API_KEY="your_api_key_here"

ベース URL

https://rest.canopyapi.co

認証

すべてのリクエストで API-KEY ヘッダーが必要です。

import os
import requests

API_KEY = os.environ["API_KEY"]
BASE_URL = "https://rest.canopyapi.co"
HEADERS = {"API-KEY": API_KEY}

エンドポイント

商品情報を取得
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"
})

商品名、ブランド、価格、評価、画像、特徴の箇条書き、カテゴリー、出品者情報を返します。

ASIN を GTIN に変換
response = requests.get(f"{BASE_URL}/api/amazon/product/gtin-from-asin", headers=HEADERS, params={
    "asin": "B01HY0JA3G",
    "domain": "US",  # optional
})
GTIN を ASIN に変換
response = requests.get(f"{BASE_URL}/api/amazon/product/asin-from-gtin", headers=HEADERS, params={
    "gtin": "9780141036144",
    "domain": "US",  # optional
})
商品のバリエーションを取得
response = requests.get(f"{BASE_URL}/api/amazon/product/variants", headers=HEADERS, params={
    "asin": "B01HY0JA3G",
})
在庫数の推定値を取得
response = requests.get(f"{BASE_URL}/api/amazon/product/stock", headers=HEADERS, params={
    "asin": "B01HY0JA3G",
})
販売数の推定値を取得
response = requests.get(f"{BASE_URL}/api/amazon/product/sales", headers=HEADERS, params={
    "asin": "B01HY0JA3G",
})

週次、月次、年次の販売数量の推定値を返します。

商品レビューを取得
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
})
商品の出品情報を取得
response = requests.get(f"{BASE_URL}/api/amazon/product/offers", headers=HEADERS, params={
    "asin": "B01HY0JA3G",
    "page": 1,  # optional
})
商品を検索
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
})
オートコンプリート候補を取得
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")
})
カテゴリー体系を取得
response = requests.get(f"{BASE_URL}/api/amazon/categories", headers=HEADERS, params={
    "domain": "US",  # optional
})
カテゴリー情報を取得
response = requests.get(f"{BASE_URL}/api/amazon/category", headers=HEADERS, params={
    "categoryId": "1234567890",
    "domain": "US",          # optional
    "page": 1,               # optional
    "sort": "FEATURED",      # optional
})
出品者情報を取得
response = requests.get(f"{BASE_URL}/api/amazon/seller", headers=HEADERS, params={
    "sellerId": "A2R2RITDJNW1Q6",
    "domain": "US",  # optional
    "page": 1,       # optional
})
著者情報を取得
response = requests.get(f"{BASE_URL}/api/amazon/author", headers=HEADERS, params={
    "asin": "B000AQ5RM0",
    "domain": "US",  # optional
    "page": 1,       # optional
})
セール情報を取得
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
})
ベストセラーを取得
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
})

ランキング順位、評価、カテゴリーのナビゲーション情報とともに、ランキング上位の商品を返します。

ベストセラーカテゴリーを取得
response = requests.get(f"{BASE_URL}/api/amazon/bestseller-categories", headers=HEADERS, params={
    "domain": "US",  # optional
})

/api/amazon/bestsellers に渡す、最上位のベストセラーカテゴリー ID(例:bestsellers_amazon_devices)を返します。

商品検索のオプション

商品エンドポイントでは、次のいずれかの識別子を使用できます。

パラメーター説明例
asinAmazon 商品の ASINB01HY0JA3G
urlAmazon 商品の完全な URLhttps://amazon.com/dp/B01HY0JA3G
gtinISBN、UPC、または EAN コード9780141036144

対応ドメイン

US(デフォルト)、UK、CA、DE、FR、IT、ES、AU、IN、MX、BR、JP、PL

エラー処理

ステータス意味
400無効なパラメーター
401API キーが無効または指定されていません
402支払いが必要です
500サーバーエラー
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}")

コメント