商品画像アップロードAPI
商品画像を未反映状態でアップロードします。
※ フロント反映はしません。別途反映処理が必要です。
※ 並列でのリクエストは不可です。
複数の商品画像をアップロードする場合は「商品画像一括アップロードAPI」をご利用ください。
※画像アップロード上限数は「10,000枚/1時間」までです。
上限を超えた場合、エラー(429)が返却される場合があります。
(参考)【Yahoo!ショッピング】【重要】商品データアップロードガイドラインのご案内
サンプルコード(PHP版)についてはこちらをご確認ください。
変更履歴
2024年11月12日
機能説明に画像のアップロード時の件数に制限が設定されたことを記載しました。
2022年04月08日
下記リクエストパラメータ、レスポンスフィールドの説明を修正しました。
・file
・/ResultSet/Result/Id
・/ResultSet/Result/Url/Mode[A-L]
リクエストURL
本番環境
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImage
テスト環境
https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImage
テスト用APIを利用したい場合は、こちらから利用申請をお願いします。
リクエストパラメータ
「Web APIの使い方#POSTとは」をご参照ください。
パラメータ | 値 | 説明 |
---|---|---|
seller_id (必須) |
string | ストアアカウントを指定します。 GETパラメータで渡してください。 |
file (必須) |
multipart/form-data | 画像ファイルを指定します。 GIFもしくはJPEG形式のみです。 画像一枚のサイズは、2MB以下です。 商品と画像を紐付けるためにはファイル名を以下のようにしてください。 商品画像:商品コード.拡張子 商品詳細画像:商品コード_(1-20).拡張子 ※拡張子は、jpg または gif になります。 ※2022年5月以降、拡張子「png」をご利用いただけます。 出店者様ごとに順次リリースになりますので、リリース日について告知ページにてご確認ください。 |
サンプルリクエストURL
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImage?seller_id=teststore
サンプルリクエスト
POST /ShoppingWebService/V1/uploadItemImage?seller_id=teststore HTTP/1.1
Host: circus.shopping.yahooapis.jp
Authorization: Bearer <アクセストークン>
file=(sample1.jpg)
レスポンスフィールド
フィールド | 説明 |
---|---|
/ResultSet | クエリーレスポンスのすべてを含みます。 |
/ResultSet/Status | OK : 成功 |
/ResultSet/Result | 結果 |
/ResultSet/Result/Id | 画像ID ※2022年5月以降、画像ファイル名ルールが変更になります。登録日時などが都度発行されます。詳しくはこちら |
/ResultSet/Result/Name | アップロードしたファイル名 |
/ResultSet/Result/Url | 画像URL(未反映状態の画像を参照するURL) |
/ResultSet/Result/Url/Mode[A-L] | 表示モードごとのURL ※2022年5月以降、本番URLとなり、ドメインが変更になります。 出店者様ごとに順次リリースになりますので、リリース日について告知ページにてご確認ください。 |
サンプルレスポンス
<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet>
<Status>OK</Status>
<Result>
<Id>teststore_sample1</Id>
<Name>sample1.jpg</Name>
<Url>
<ModeA>http://preview.image.shopping.yahoo.co.jp/RT/i/a/teststore_sample1</ModeA>
<ModeB>http://preview.image.shopping.yahoo.co.jp/RT/i/b/teststore_sample1</ModeB>
<ModeC>http://preview.image.shopping.yahoo.co.jp/RT/i/c/teststore_sample1</ModeC>
<ModeD>http://preview.image.shopping.yahoo.co.jp/RT/i/d/teststore_sample1</ModeD>
<ModeE>http://preview.image.shopping.yahoo.co.jp/RT/i/e/teststore_sample1</ModeE>
<ModeF>http://preview.image.shopping.yahoo.co.jp/RT/i/f/teststore_sample1</ModeF>
<ModeG>http://preview.image.shopping.yahoo.co.jp/RT/i/g/teststore_sample1</ModeG>
<ModeH>http://preview.image.shopping.yahoo.co.jp/RT/i/h/teststore_sample1</ModeH>
<ModeI>http://preview.image.shopping.yahoo.co.jp/RT/i/i/teststore_sample1</ModeI>
<ModeJ>http://preview.image.shopping.yahoo.co.jp/RT/i/j/teststore_sample1</ModeJ>
<ModeK>http://preview.image.shopping.yahoo.co.jp/RT/i/k/teststore_sample1</ModeK>
<ModeL>http://preview.image.shopping.yahoo.co.jp/RT/i/l/teststore_sample1</ModeL>
</Url>
</Result>
</ResultSet>
2021年8月以降のレスポンス(サンプル)
<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet>
<Status>OK</Status>
<Result>
:
※リリース前にアップロードされた画像については、今までの画像URLパスで返却されます。
<Url>
<ModeA>https://item-shopping.c.yimg.jp/i/a/teststore_sample1_i_20210705100000</ModeA>
<ModeB>https://item-shopping.c.yimg.jp/i/b/teststore_sample1_i_20210705100000</ModeB>
<ModeC>https://item-shopping.c.yimg.jp/i/c/teststore_sample1_i_20210705100000</ModeC>
<ModeD>https://item-shopping.c.yimg.jp/i/d/teststore_sample1_i_20210705100000</ModeD>
<ModeE>https://item-shopping.c.yimg.jp/i/e/teststore_sample1_i_20210705100000</ModeE>
<ModeF>https://item-shopping.c.yimg.jp/i/f/teststore_sample1_i_20210705100000</ModeF>
<ModeG>https://item-shopping.c.yimg.jp/i/g/teststore_sample1_i_20210705100000</ModeG>
<ModeH>https://item-shopping.c.yimg.jp/i/h/teststore_sample1_i_20210705100000</ModeH>
<ModeI>https://item-shopping.c.yimg.jp/i/i/teststore_sample1_i_20210705100000</ModeI>
<ModeJ>https://item-shopping.c.yimg.jp/i/j/teststore_sample1_i_20210705100000</ModeJ>
<ModeK>https://item-shopping.c.yimg.jp/i/k/teststore_sample1_i_20210705100000</ModeK>
<ModeL>https://item-shopping.c.yimg.jp/i/l/teststore_sample1_i_20210705100000</ModeL>
</Url>
// 商品詳細画像の場合
<Url>
<ModeA>https://item-shopping.c.yimg.jp/i/a/teststore_sample1_1_d_20210705100000</ModeA>
<ModeB>https://item-shopping.c.yimg.jp/i/b/teststore_sample1_1_d_20210705100000</ModeB>
<ModeC>https://item-shopping.c.yimg.jp/i/c/teststore_sample1_1_d_20210705100000</ModeC>
<ModeD>https://item-shopping.c.yimg.jp/i/d/teststore_sample1_1_d_20210705100000</ModeD>
<ModeE>https://item-shopping.c.yimg.jp/i/e/teststore_sample1_1_d_20210705100000</ModeE>
<ModeF>https://item-shopping.c.yimg.jp/i/f/teststore_sample1_1_d_20210705100000</ModeF>
<ModeG>https://item-shopping.c.yimg.jp/i/g/teststore_sample1_1_d_20210705100000</ModeG>
<ModeH>https://item-shopping.c.yimg.jp/i/h/teststore_sample1_1_d_20210705100000</ModeH>
<ModeI>https://item-shopping.c.yimg.jp/i/i/teststore_sample1_1_d_20210705100000</ModeI>
<ModeJ>https://item-shopping.c.yimg.jp/i/j/teststore_sample1_1_d_20210705100000</ModeJ>
<ModeK>https://item-shopping.c.yimg.jp/i/k/teststore_sample1_1_d_20210705100000</ModeK>
<ModeL>https://item-shopping.c.yimg.jp/i/l/teststore_sample1_1_d_20210705100000</ModeL>
</Url>
:
</Url>
</Result>
</ResultSet>
エラー
Yahoo!ショッピングで提供している全てのAPIには、共通で利用するエラーコードがあります。エラーの際には、まず始めに以下をご確認ください。
商品画像アップロードAPIで固有に返すエラーコードは以下をご覧ください。
商品系API共通エラーコード
コード | HTTPステータスコード | 説明 |
---|---|---|
ed-00000 | 404 | ページが見つかりません。 |
ed-00001 | 500 | システムエラーが発生しました。 |
ed-00002 | 503 | サーバがメンテナンス中です。 |
ed-00003 | 400 | ストアアカウントが指定されていません。 |
ed-00004 | 400 | ストアアカウントが存在しません。 |
ed-00005 | 400 | ストアアカウントの指定が不正です。 |
ed-00006 | 400 | 反映またはアップロード中のため更新ができません。 |
エラーコード
コード | HTTPステータスコード | 説明 |
---|---|---|
im-02001 | 400 | fileは必須項目です。 |
im-02002 | 400 | 画像サイズを2MB以下に変更して下さい。 |
im-02003 | 400 | ファイル形式はgif/jpgのみです。 |
im-02004 | 400 | 画像ファイル名が不正です。 |
im-02005 | 400 | 画像処理中です。 |
サンプルコード(PHP)
<?php
$header = [
'Content-Type: multipart/form-data',
'POST /ShoppingWebService/V1/uploadItemImage?seller_id=<ストアアカウント> HTTP/1.1',
'Host: circus.shopping.yahooapis.jp',
'Authorization: Bearer ' . <アクセストークン>,
];
$url = 'https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImage?seller_id=<ストアアカウント>';
$param = array('file' => new CURLFile('<ファイルのパス>', '<ファイルのMIMEタイプ>', '<ファイルの名前>'));
// 必要に応じてオプションを追加してください。
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
$response = curl_exec($ch);
curl_close($ch);
?>
利用約款
このAPIに関する利用約款はこちら。
目次
- 商品検索
- カテゴリランキング
- カテゴリID取得
- 商品コード検索(商品詳細)
- キーワードランキング
- おすすめ情報モジュール
- ポイントキャンペーン情報取得
- 販促イベント検索
- 商品レビュー検索
- 出品管理に関連するAPI
- 商品に関連するAPI
- 問い合わせ管理に関連するAPI
- 製品/SHPカテゴリ/ブランドに関連するAPI
- 在庫に関連するAPI
- ストアカテゴリに関連するAPI
- 画像に関連するAPI
- デザインに関連するAPI
- 注文に関するAPI
- ヘルプ