商品画像アップロード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に関する利用約款はこちら

アプリケーションの管理

目次

利用のルール

開発のヒント