楽天商品検索APIの使い方 楽天APIでせどり自動リサーチ

楽天商品検索APIの使い方 楽天APIでせどり自動リサーチ

楽天ポイントせどりでリサーチをするけれどなかなか良い商品を見つけることができないという方。ちょっとしたITスキルを使うことにより楽天でのリサーチが劇的に向上します!

Rakuten Developersを見るとたくさんのAPIが存在するのがわかります。そのなかで楽天リサーチに役立つ「楽天市場商品検索API」の使い方を紹介します。

Rakuten Developersにログイン

Rakuten Developers(https://webservice.rakuten.co.jp/)にアクセスして、楽天会員のIDでログインしてください。

アプリID発行

「アプリID発行」をクリックしてください

アプリ新規作成フォームに必要事項を入力してください。

① アプリ名: あとで自分が何のためのアプリか分かればなんでもOK
② アプリURL: Web APIを使うサイトのURLを記載するのですが、これもなんでもOK
③ 詳細情報を開く: 今回は検索だけで使うなので省略
④ アンケートなので省略
⑤ 認証: 表示されている数字5文字を入力
⑥ 最後にクリック!

この情報は楽天APIを使う上で重要な情報になります。
Rakuten Developersにログインすればいつでも見れるので、メモを取る必要はありません。

テストフォームで動作確認

アプリIDを取得したら実際の動きを見てみましょう。
https://webservice.rakuten.co.jp/explorer/api/IchibaItem/Search/

アプリIDはすでに入力済みになっています。入力されてなければ取得したアプリIDを入力してください。
① keyword: 検索したいキーワードです。リサーチしたいブランド名や商品名などを入力してください。
② genreId: 検索したいジャンルに紐づくIDを入力します。ジャンルIDの調べ方は別記事で紹介しますが、今回は全ジャンルを対象にする「0」を設定しましょう。
③ GETボタン: クリックすると結果が表示されます。

URLのところには、実際に楽天APIを呼び出すためのパラメータ付きのリクエスト(URL)が表示されるので開発のときの参考にしましょう。

GETボタンの下に、楽天APIから返ってきた結果が表示されたと思います。これらをプログラムで処理することで自動リサーチが実現できます。

API利用時の各種パラメータはAPI詳細ページに記載されています。https://webservice.rakuten.co.jp/api/ichibaitemsearch/
代表的な(というか私が使っている)パラメータについて確認してみましょう。

項目名パラメータ説明
検索キーワードkeyword探したい商品の検索ワードなので使えそうです。LEGOの仕入れをしたければ「LEGO」と設定したり、処分品を探したかったら「在庫処分」と設定しましょう。
ショップコードshopCode特定の店だけをリサーチする際は、その店のショップコードを設定します。
取得ページpage通常検索結果は30件までしか返されません。31~60件目の結果が必要ならば、ここに2を設定します。
ソートsort安い順に表示したければ「-itemPrice」を設定します。私はいつも「standard」を設定しています。「standard」は楽天標準ソート順で売れ筋商品から順番に表示されます。
最小価格minPrice最低価格を設定します。1円とか2円とか怪しい商品を除くために100を設定しておきましょう。
最大価格maxPrice自身で仕入れられる上限を設定しておくと良いでしょう。100000等。
除外キーワードNGKeyword検索結果に含めたくないワードを設定します。私は新品商品のみを検索対象にしたいので「中古」。
AmazonのFBAで扱えないリチウムイオンを含めないために「リチウム」など。
スペース区切りで複数のワードを設定できます。

APIリクエスト用URLの作り方

リクエストURLのルールは以下の通りです。

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?applicationId=[アプリID]?[parameter1]=[value1]&[parameter2]=[value2]…

「LEGO」を「トイザらス」で探したい。最低価格は「100」円で最高価格は「10,000」円。「中古」と「リチウム」を含む結果は欲しくない。
安い順に上位30件を確認したい。
という場合は以下のようになります。

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&keyword=LEGO&genreId=0&shopCode=toysrus&page=1&sort=-itemPrice&minPrice=100&maxPrice=100000&NGKeyword=中古 リチウム&applicationId=[アプリID]

このリクエストURLをブラウザのアドレスバーに入力すると値が返ってくることがわかります。

プログラムに組み込む

私はawsのlambdaをプラットフォームにpythonベースでプログラミングをしています。以下はプログラミングの一例です。

def lambda_handler(event, context):
  url = 'https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706'
  payload = {
    'applicationId': 'XXXXXXXXXXXXXXXXX'
  }

if 'genreId' in event:
    if len(event['genreId']):
        genreId = event['genreId']
        payload['genreId'] = event['genreId']

if 'page' in event:
    page = event['page']
    payload['page'] = event['page']

if 'shopCode' in event:
    if len(event['shopCode']):
        shopCode = event['shopCode']
        payload['shopCode'] = event['shopCode']

if 'genreName' in event:
    if len(event['genreName']):
        payload['genreName'] = event['genreName']

if 'keyword' in event:
    if len(event['keyword']):
        payload['keyword'] = event['keyword']

payload['minPrice'] = 100

payload['maxPrice'] = 100000
payload['NGKeyword'] = 'リチウム 中古'

r = requests.get(url, params=payload)
resp = r.json()

楽天APIを利用するためにアプリIDを取得する方法や、APIの基本的な使い方は以上になります。
自分のリサーチに役立てるプログラムを作っていきましょう。