- 楽天レシピAPIのカテゴリIDが分からない
- 楽天レシピAPIのカテゴリID一覧が知りたい
- 楽天レシピAPIのカテゴリIDを自分で調べたい
はじめに
楽天レシピAPIとは、Rakuten Webserviceが提供する「楽天レシピカテゴリ別ランキングAPI」のことです。
このAPIではレシピのカテゴリ絞ってリクエストを送ると、カテゴリ内で最大4位までの「レシピタイトル」、「レシピURL」、「画像URL」、「投稿者情報」、「材料名の一覧」、「調理時間目安」、「費用の目安」などのレシピ情報が取得できます。
今回は、このカテゴリ別ランキングを調べる時に必須のレシピカテゴリID一覧と、Pythonを使ったカテゴリIDの調べ方を紹介します。「自分でプログラミング使ってカテゴリID調べたい!」、「最新のカテゴリID調べたい!」という方、おすすめの内容となっています。
楽天レシピカテゴリID一覧
楽天レシピではカテゴリレベルが大中小(親子孫)の3階層に別れています。大中小カテゴリ問わずカテゴリIDを使う際は、表中の「カテゴリID」を使ってください。(例. フライドポテト:30-717-2116)
注意点
中および小カテゴリでは、単体の中カテゴリ・小カテゴリではエラーが出ます。必ず以下のようにしてください。
カテゴリID:大カテゴリID-中カテゴリID-小カテゴリID
このような場合、
- 大カテゴリ:人気メニュー(大カテゴリID:30)
- 中カテゴリ:じゃがいも料理(中カテゴリID:717)
- 小カテゴリ:フライドポテト(小カテゴリID:2116)
カテゴリIDは以下のようになります。
- 人気メニュー:30
- じゃがいも料理:30-717
- 小カテゴリ料理:30-717-2116
カテゴリID一覧
以下、カテゴリID一覧です。
Pythonでの調べ方
事前準備
楽天APIのアプリ登録が済んでいない方(アプリケーションIDまだ発行していない方)はRakuten Webserviceのページの「アプリID発行」から登録・ID発行を済ませてください。(下記画像青枠部分)

Pythonソースコード
以下Pythonのコードです。最終的にカテゴリID・一覧をCSVに出力できる仕様になっています。
ハイライトした9行目のアプリケーションIDを自分のアプリケーションIDに変更したら、コピペでOKです。
import requests
import pandas as pd
import json
from pandas import json_normalize
#urlの作成
base_url = 'https://app.rakuten.co.jp/services/api/Recipe/CategoryList/20170426' #ジャンル検索APIのベースとなるURL
item_parameters = {
'applicationId': '自分のアプリケーションID',
'format': 'json',
'formatVersion': 2,
}
#全カテゴリレベルの前データ抽出
r = requests.get(base_url, params=item_parameters)
item_data = r.json()
#データ格納用にデータフレームを準備
df_category = pd.DataFrame(columns=['categoryL','categoryM','categoryS','categoryId','categoryName'])
#大カテゴリ
for category in item_data['result']['large']:
df_category = df_category.append(
{'categoryL':category['categoryId'],
'categoryM':"",
'categoryS':"",
'categoryId':category['categoryId'],
'categoryName':category['categoryName']},
ignore_index=True)
#中カテゴリ
#小カテゴリの時のカテゴリID作成用に中カテゴリの親(大)カテゴリの辞書を用意
parent_dict = {}
for category in item_data['result']['medium']:
df_category = df_category.append(
{'categoryL':category['parentCategoryId'],
'categoryM':category['categoryId'],
'categoryS':"",
'categoryId':str(category['parentCategoryId'])+"-"+str(category['categoryId']),
'categoryName':category['categoryName']},
ignore_index=True)
parent_dict[str(category['categoryId'])] = category['parentCategoryId']
#小カテゴリ
for category in item_data['result']['small']:
df_category = df_category.append(
{'categoryL':parent_dict[category['parentCategoryId']],
'categoryM':category['parentCategoryId'],
'categoryS':category['categoryId'],
'categoryId':parent_dict[category['parentCategoryId']]+"-"+str(category['parentCategoryId'])+"-"+str(category['categoryId']),
'categoryName':category['categoryName']},
ignore_index=True)
#csvに出力
df_category.to_csv('category_id.csv', index=False, encoding='utf_8_sig')
まとめ
このレシピカテゴリIDを使って、カテゴリを絞った人気レシピの検索もこちらで紹介しています。ぜひ参考にしてみてください。