ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
このエラーの概要
Amazon Product Advertising API(PA-API、商品検索 API)を呼び出した際に返るエラー:
HTTP/1.1 400 Bad Request
AWS.MissingParameters
Your request is missing required parameters. Required parameters
include Operation.
このエラーは PA-API リクエストに必須パラメータ Operation が含まれていない / 値が空のときに返されます。PA-API は SOAP/REST 由来の設計のため、すべてのリクエストに「何の処理を呼ぶか」を Operation で示す必要があります。
PA-API 4.0 と 5.0 の違い
| 項目 | PA-API 4.0(廃止) | PA-API 5.0(現行) |
|---|---|---|
| 提供状況 | 2020-03-09 廃止 | 現行 |
| 形式 | GET + URL クエリ | POST + JSON body |
| Operation 指定 | クエリパラメータ | HTTP ヘッダ X-Amz-Target |
| Operation 例 | ItemSearch / ItemLookup / BrowseNodeLookup | SearchItems / GetItems / GetVariations / GetBrowseNodes |
| 署名 | v2 | AWS Signature v4 |
| レスポンス | XML | JSON |
対処1: PA-API 5.0 へ移行(必須)
2026 年現在、4.0 を呼んでも常にエラーになります。SDK 利用が公式推奨です:
# PHP
composer require amzn/paapi5-php-sdk
# Python
pip install paapi5-python-sdk
# Node.js
npm install paapi5-nodejs-sdk
# Java は Maven リポジトリから paapi5-java-sdk
対処2: PHP での正しい呼び出し(SearchItems)
setAccessKey('YOUR_ACCESS_KEY');
$config->setSecretKey('YOUR_SECRET_KEY');
$config->setHost('webservices.amazon.co.jp');
$config->setRegion('us-west-2');
$apiInstance = new DefaultApi(new GuzzleHttp\Client(), $config);
$request = new SearchItemsRequest();
$request->setPartnerTag('your-22');
$request->setPartnerType(PartnerType::ASSOCIATES);
$request->setKeywords('Python 入門');
$request->setSearchIndex('Books');
$request->setItemCount(10);
$request->setResources([
SearchItemsResource::ITEM_INFOTITLE,
SearchItemsResource::OFFERSLISTINGSPRICE,
SearchItemsResource::IMAGESPRIMARYLARGE,
]);
try {
$response = $apiInstance->searchItems($request);
foreach ($response->getSearchResult()->getItems() as $item) {
echo $item->getItemInfo()->getTitle()->getDisplayValue() . PHP_EOL;
}
} catch (ApiException $e) {
echo 'Error: ' . $e->getResponseBody();
}
対処3: 生 HTTP で呼ぶ場合(参考、SDK 推奨)
SDK を使わず直接呼ぶ場合、X-Amz-Target ヘッダに Operation を指定します:
POST /paapi5/searchitems HTTP/1.1
Host: webservices.amazon.co.jp
Content-Type: application/json; charset=UTF-8
X-Amz-Date: 20260515T120000Z
X-Amz-Target: com.amazon.paapi5.v1.ProductAdvertisingAPIv1.SearchItems
Authorization: AWS4-HMAC-SHA256 Credential=...
{
"Keywords": "Python 入門",
"SearchIndex": "Books",
"ItemCount": 10,
"PartnerTag": "your-22",
"PartnerType": "Associates",
"Marketplace": "www.amazon.co.jp",
"Resources": [
"ItemInfo.Title",
"Offers.Listings.Price"
]
}
PA-API 5.0 で使える Operation 一覧
| Operation (X-Amz-Target) | 用途 | 旧 PA-API 4 名 |
|---|---|---|
| SearchItems | キーワード / カテゴリで検索 | ItemSearch |
| GetItems | ASIN 指定で詳細取得(最大 10 個) | ItemLookup |
| GetVariations | バリエーション(色 / サイズ)取得 | — |
| GetBrowseNodes | カテゴリ階層取得 | BrowseNodeLookup |
よくある原因と対処
| 症状 | 原因 | 対処 |
|---|---|---|
| Operation is missing | 4.0 形式で呼んでいる / Operation 未設定 | 5.0 SDK を使用、X-Amz-Target ヘッダ |
| InvalidParameterValue | SearchIndex / ItemId 不正 | 有効値を 公式ドキュメントで確認 |
| InvalidSignature | 署名計算ミス | SDK 使用、手動署名はしない |
| TooManyRequests (429) | レート制限 | 売上による TPS 上限、リトライ + バックオフ |
| AccessDenied | Associate 未承認 / 売上 0 | 30 日以内に 3 件以上の売上が必要 |
FAQ
Q: PA-API 4.0 をまだ使えるか?
A: 使えません。2020 年 3 月で完全廃止。今 4.0 を呼ぶと 400 エラーや 410 Gone が返ります。
Q: 売上 0 でも開発できる?
A: PA-API はアフィリエイト売上が条件。30 日以内に 3 件以上の発注がないと API キーが停止されます。開発用には Amazon Sandbox(提供地域限定)または アソシエイト・セントラルのテスト機能を使用。
Q: 日本 Amazon と米国 Amazon で同じキーは使える?
A: アソシエイト ID はマーケットプレイスごとに別。Host も webservices.amazon.co.jp / webservices.amazon.com と分けます。
関連エラー
The request signature we calculated does not match— 署名ミス、SDK 利用推奨AssociateTag not found— PartnerTag 誤り、コンソールで確認InvalidParameterValue: ItemIds— ASIN が無効 / 商品削除済
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Error 400 : Bad Request Parameter Operation is missing
- MissingParameter. The request must contain the parameter Signature.
- RequestThrottled. AWS Access Key ID: ... . You are submitting requests too quickly
- SignatureDoesNotMatch. The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
- failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?