楽天商品検索 API の 2026-07-01 版では、アプリ ID に加えてアクセスキーが必須です。私の環境では、Referer ヘッダーがないとエラーになりました。 エラーの応答も、ドキュメントに書かれた形とは違う形で返ってきたので、両方に対応しておかないと「該当商品なし」に化けます。
解決方法
- エンドポイントは
openapi.rakuten.co.jpに移っています
https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20260701
applicationIdとaccessKeyの両方を送る。accessKeyは、ドキュメントではヘッダーでもクエリでもよいとされています。URL やアクセスのログに残さないよう、私はヘッダーで送っています- Referer ヘッダーを付ける(WordPress から呼ぶなら、サイトの URL)
- エラーは、ドキュメントの形(
errorとerror_description)と、実際に返ってきた形(errorsの中のerrorCodeとerrorMessage)の両方を見る
WordPress から呼ぶなら、次のような形です。
$response = wp_remote_get(
add_query_arg(
array(
'applicationId' => $application_id,
'keyword' => $keyword,
'format' => 'json',
),
'https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20260701'
),
array(
'headers' => array(
'accessKey' => $access_key, // URL に残さないようヘッダーで送る
'Referer' => home_url(),
),
'timeout' => 15,
)
);
$body = json_decode( wp_remote_retrieve_body( $response ), true );
// エラーは2つの形のどちらでも返ってくる
$error = $body['errors']['errorMessage'] ?? $body['error_description'] ?? $body['error'] ?? null;
if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) >= 400 || $error ) {
// 「該当商品なし」にせず、エラーとして画面に出す
}
起きたこと
WordPress のプラグインから楽天の商品検索 API を呼んで、商品のリンクと画像を入れる機能を作っていました。2026-07-01 版に移ると、次の順番でつまずきました。
- アクセスキーが必須になっていた:アプリ ID だけでは通らなくなっていました
- Referer ヘッダーもないと通らなかった:
REQUEST_CONTEXT_BODY_HTTP_REFERRER_MISSINGというエラーで気づきました。公式のドキュメントには、Referer についての記載は見つかりませんでした - エラーが「該当商品なし」に化けていた:ドキュメントにある
errorの形しか見ていなかったので、errorsの形で返ってきたキーの誤りなどが素通りして、「該当する商品が見つかりませんでした」と表示されていました
アプリの登録と送信元の IP
楽天ウェブサービスのアプリを「API/バックエンドサービス」として登録したときは、API を呼ぶ側の IP アドレスの登録を求められました。
共有のレンタルサーバーでは、サイトを配信している IP と、外に API を呼びに行くときの IP が違うことがあります。そこで、プラグインの設定画面に、サーバーから外部の IP の確認サービスに問い合わせて、実際の送信元 IP を表示するボタンを付けました。
アプリの種類ごとの違い(「Web アプリケーション」との違いなど)は、公式のドキュメントでは見つけられませんでした。登録するときの画面の案内に従ってください。
エラーを握りつぶさない
楽天でも Amazon の API でも、同じ失敗をしていました。HTTP のエラーを「結果が空」として扱うと、「該当商品なし」に化けて、原因が追えなくなります。エラーはエラーとして、コードとメッセージをそのまま画面に出すように直しました。
確かめた環境
- 2026-08-24 に、WordPress のプラグインから呼んで確認
- 楽天商品検索 API 2026-07-01 版
- 楽天の仕様は変わることがあるので、最新の公式ドキュメントもあわせて確かめてください
参考
あわせて読みたい
