1.

Amazon PA-API「Operation is missing」400 エラーの原因と PA-API 5.0 への移行

編集
この記事の要点
  • Error 400 : Bad Request Parameter Operation is missing は Amazon Product Advertising API のパラメータ不足エラー
  • Operation パラメータは必須。ItemSearch / ItemLookup(PA-API 4)または SearchItems / GetItems / GetBrowseNodes(PA-API 5)を指定
  • PA-API 5.0 では JSON POST 形式に変更、Operation は HTTP ヘッダ X-Amz-Target
  • 対処: SDK(公式 paapi5-php-sdk / paapi5-python-sdk)を利用、署名計算は手動で行わない
  • PA-API 4.0 は 2020-03 に廃止。今 4.0 を呼ぶと別エラー、必ず 5.0 へ移行

このエラーの概要

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 / BrowseNodeLookupSearchItems / GetItems / GetVariations / GetBrowseNodes
署名v2AWS Signature v4
レスポンスXMLJSON

対処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
GetItemsASIN 指定で詳細取得(最大 10 個)ItemLookup
GetVariationsバリエーション(色 / サイズ)取得
GetBrowseNodesカテゴリ階層取得BrowseNodeLookup

よくある原因と対処

症状原因対処
Operation is missing4.0 形式で呼んでいる / Operation 未設定5.0 SDK を使用、X-Amz-Target ヘッダ
InvalidParameterValueSearchIndex / ItemId 不正有効値を 公式ドキュメントで確認
InvalidSignature署名計算ミスSDK 使用、手動署名はしない
TooManyRequests (429)レート制限売上による TPS 上限、リトライ + バックオフ
AccessDeniedAssociate 未承認 / 売上 030 日以内に 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 はマーケットプレイスごとに別。Hostwebservices.amazon.co.jp / webservices.amazon.com と分けます。

関連エラー

  • The request signature we calculated does not match — 署名ミス、SDK 利用推奨
  • AssociateTag not found — PartnerTag 誤り、コンソールで確認
  • InvalidParameterValue: ItemIds — ASIN が無効 / 商品削除済
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Error 400 : Bad Request Parameter Operation is missing
  2. MissingParameter. The request must contain the parameter Signature.
  3. RequestThrottled. AWS Access Key ID: ... . You are submitting requests too quickly
  4. 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.
  5. failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable