Keepa本家の解説ページ https://keepa.com/#!discuss/t/product-finder/5473
#初めに
GETだと文字数が足りず、どうしてもPOSTでリクエストしたくて試行錯誤したのでうまくいったコードを載せておきます。
#サンプルコード
keepa_product_finder_sample.gas.js
const key = 'APIキーを入力してください';
const queryJSON = {
"perPage": 100, //最低50 この数値分検索結果を取得します
"page": 0, //ページを指定します 例えばperpageが100の時、page=0なら検索結果の1~100番目が、page=1なら101~200番目の結果が返ってきます
"productType" : 0,
"rootCategory" : "2127209051", //ルートカテゴリで絞りたい場合は指定します 複数のルートカテゴリを同時に指定することはできません
"title" : "ノートパソコン -Apple",//タイトルをキーワード検索します -だけでもOKです めちゃくちゃ長いキーワードを指定してもPOSTならいけます
"avg90_NEW_gte" : 30000, //直近90日の新品価格の平均が30,000円以上
"current_SALES_gte": 1000, //現在のランキングが1,000位以上
"current_SALES_lte": 20000, //現在のランキングが20,000位以下
"current_LISTPRICE_gte": 30000, //リスト価格(コンディションに関わらず全ての出品)が30,000円以下の商品を弾けます → 結果に30,000円以下の商品が結構含まれてて原因不明です…
"isPrimeExclusive" : false //Primeでは無い商品も検索されますが、通常出荷とFBA出荷の両方の出品がある商品がマッチするのであって、FBA出品が0な商品だけで絞れるという訳では無いです
};
const request = UrlFetchApp.fetch('https://api.keepa.com/query?domain=5&key=' + key,{
'method' : 'post',
'headers' : { 'Connection' : 'keep-alive' },
'payload' : { 'selection' : JSON.stringify(queryJSON)}, //POSTするときはselectionキーにqueryJSONをString化して設定します
});
const response = JSON.parse(request.getContentText());
const asinList = response.asinList; //条件にあったASINの配列
Logger.log('この条件にマッチするASINの合計数: ' + response.totalResults);//マッチする商品数がperPageより多い場合、asinList.length = perPage ですが、totalResultsはそれ以上になります