Taobao検索API
APIの稼働状況
- 24時間の稼働状況
- 97%
- 24時間の平均応答時間
- 9.41 s
- 良好/正常
- 利用可能
- 制限あり
- ほぼ停止
過去24時間
過去30日間
キーワードでTaobaoとTmallの出品を検索します。価格と発送元に加え、取得できる場合は販売数、評価、ショップ、クーポンや割引の情報を取得できます。最も安定しているのは通常のキーワード検索で、pageによるページ送り(1ページ20件)にも対応していますが、ほとんどの行で販売数とショップ名が欠けています。価格帯の指定、popular、price_desc、tmall_onlyはページ送りに対応しておらず、後の3つは1リクエストあたり10件までに制限されます。在庫、真贋、配送は確認されません。
Taobao検索は、keywordでTaobaoとTmallの商品を検索し、各商品のタイトル、価格と通貨、販売数、評価、発送元、ショップ名、メイン画像、在庫を返します。カテゴリでどんな商品がいくらで売れているかを把握でき、商品リサーチ、競合の価格追跡、カテゴリ分析に使えます。
min_priceとmax_priceで価格を絞り込み、sortで並び順(関連度、人気順、価格の高い順)を指定し、tmall_onlyでTmallの商品のみに絞れます。tmall_onlyにはブール値のtrueまたはfalseを指定してください。文字列を渡すと、課金前に拒否されます。ratingの値を比較する前に、同じ行のrating_scaleを確認してください。最大値はプラットフォームによって異なります。
料金は1,000リクエストあたり$13.5(1回あたり$0.0135)です。失敗した呼び出しと空の結果には課金されません。 同期処理です。時間のかかるジョブでは、ボディに"mode": "async"を追加し、job_idを取得してポーリングしてください。
AIプロンプト
EveryInfraのTaobao 検索エンドポイント(taobao/search)を使ったデータ収集スクリプトの作成を手伝ってください。
エンドポイントの仕組み:
- リクエスト:ヘッダーにAuthorization: Bearer <API key>を指定して、https://api.everyinfra.com/api/v1/socialにPOSTします。APIキーは環境変数EVERYINFRA_API_KEYから読み込み、ハードコードしないでください。
- リクエストボディでplatformにtaobao、actionにsearchを指定し、パラメータはparamsの中に入れます。
- 必須パラメータ:
- keyword: searchアクションで使用するTaobaoまたはTmallの商品検索語を指定します。ストア名での完全一致検索は行いません。
- 任意パラメータ:
- max_price: searchアクションで、min_priceと組み合わせて商品の最高価格フィルターを設定します。SKUの在庫上限を制御するものではありません。小数は整数に切り上げられる場合があります。価格範囲を指定した検索ではページ送りできません。
- min_price: searchアクションで商品の最低価格フィルターを設定します。レビュースコアのフィルターやAPI料金のパラメータではなく、shop、product_detail、reviews、questionsには適用されません。小数は整数に切り捨てられる場合があります。価格範囲を指定した検索ではページ送りできません。
- page: 商品検索のページ番号です。1〜50を指定でき、1ページあたり20件です。1ページ目の場合は省略してください。各ページは1回の呼び出しとして課金されます。ページ送りできるのはキーワードのみの検索に限られます(min_price、max_price、tmall_onlyを指定せず、sortは省略またはrelevance)。キーワードのみの検索のほうが信頼性の高い検索方法ですが、ほとんどの行には販売数やショップ名が含まれません。
- sort: 商品検索では、relevance(デフォルト)、popular、price_descを使用します。デフォルトおよびrelevanceの検索では最大20件、popularとprice_descでは最大10件まで取得でき、popularとprice_descはページ送りできません。該当する上限を超えるリクエストは課金前に拒否されます。price_ascには対応していません。reviewsとquestionsではsortを指定できません。(指定可能な値:popular / price_desc / relevance)
- tmall_only: true(ブール値)を指定すると、商品検索をTmallの商品のみに絞り込みます。その場合、リクエストは10件までに制限され、ページ送りはできません。JSONのブール値のみを指定してください。"false"などの文字列や、この上限を超えるリクエストは課金前に拒否されます。
- limit: この呼び出しで返す最大行数で、1〜20の整数で指定します。省略するとデフォルト値が適用されます。また、返される行数がこれより少なくなる場合があります。最大値を超える値を指定すると、課金前に422が返されます。(デフォルト:20)
- レコードのリストを返します。各レコードの主なフィールド: id、url、title、price(通貨記号を含まない数値で表した価格です)、currency、sold_count(販売数です)、rating、rating_scale、location、shop_name(ショップ名です)、image_url、stock(在庫数です)。フィールドは全部で41個です。一覧はhttps://api.everyinfra.com/api/v1/social/catalog?platform=taobaoを参照してください。.
- リクエストボディの例:
{
"platform": "taobao",
"action": "search",
"params": {
"keyword": "便携咖啡秤"
}
}
- 料金:1,000リクエストあたり$13.5。失敗時および結果が空の場合は課金されません。
- 対象が数十〜数百件ある場合は、ボディに"mode": "async"を追加します。すぐにjob_idが返されるので、GET https://api.everyinfra.com/api/v1/jobs/{job_id}をポーリングして結果を取得します。
- 422の場合は、エラーに含まれる推奨パラメータ名と指定可能な値を使ってリクエストを修正します。429または503の場合は、Retry-Afterの指定に従って待ってから再試行します。
コードを書く前に、必要な対象とその件数、必要なフィールド、希望する出力形式を私に質問してください。そのうえで、計画と概算費用を私に確認してください。リクエストパラメータ
| 名前 | 場所 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|---|
Authorization | header | string | はい | - | Bearerの後にAPIキーを続けます。APIキーはコンソールで作成してください。URLやコードリポジトリには絶対に含めないでください。 |
platform | body | string | はい | taobao | プラットフォームの識別子です。値は固定です。 |
action | body | string | はい | search | 機能の識別子です。値は固定です。 |
keyword | body.params | string | はい | - | searchアクションで使用するTaobaoまたはTmallの商品検索語を指定します。ストア名での完全一致検索は行いません。 |
max_price | body.params | number | いいえ | - | searchアクションで、min_priceと組み合わせて商品の最高価格フィルターを設定します。SKUの在庫上限を制御するものではありません。小数は整数に切り上げられる場合があります。価格範囲を指定した検索ではページ送りできません。 |
min_price | body.params | number | いいえ | - | searchアクションで商品の最低価格フィルターを設定します。レビュースコアのフィルターやAPI料金のパラメータではなく、shop、product_detail、reviews、questionsには適用されません。小数は整数に切り捨てられる場合があります。価格範囲を指定した検索ではページ送りできません。 |
page | body.params | integer | いいえ | - | 商品検索のページ番号です。1〜50を指定でき、1ページあたり20件です。1ページ目の場合は省略してください。各ページは1回の呼び出しとして課金されます。ページ送りできるのはキーワードのみの検索に限られます(min_price、max_price、tmall_onlyを指定せず、sortは省略またはrelevance)。キーワードのみの検索のほうが信頼性の高い検索方法ですが、ほとんどの行には販売数やショップ名が含まれません。2ページ目以降をこれらのフィルターと組み合わせると課金前に拒否されるため、ページ送りする場合はフィルターを外してください。limitはそのページで取得する件数を設定するだけなので、ページ送り中は20のままにしてください。ランキングはリアルタイムで更新されるため、隣接するページで一部の商品が重複することがあります。ページを結合する際はidで重複を除去してください。 |
sort | body.params | string (enum) | いいえ | - | 商品検索では、relevance(デフォルト)、popular、price_descを使用します。デフォルトおよびrelevanceの検索では最大20件、popularとprice_descでは最大10件まで取得でき、popularとprice_descはページ送りできません。該当する上限を超えるリクエストは課金前に拒否されます。price_ascには対応していません。reviewsとquestionsではsortを指定できません。shopでは指定してもエラーになりませんが、現時点では効果はありません。指定可能な値popularprice_descrelevance |
tmall_only | body.params | boolean | いいえ | - | true(ブール値)を指定すると、商品検索をTmallの商品のみに絞り込みます。その場合、リクエストは10件までに制限され、ページ送りはできません。JSONのブール値のみを指定してください。"false"などの文字列や、この上限を超えるリクエストは課金前に拒否されます。 |
limit | body.params | integer (1–20) | いいえ | 20 | この呼び出しで返す最大行数で、1〜20の整数で指定します。省略するとデフォルト値が適用されます。また、返される行数がこれより少なくなる場合があります。最大値を超える値を指定すると、課金前に422が返されます。 |
コードサンプル
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "taobao",
"action": "search",
"params": {
"keyword": "便携咖啡秤"
}
}'OpenAPI定義(JSON)サンプルは環境変数EVERYINFRA_API_KEYからAPIキーを読み込みます。コピーしたコードにAPIキーが含まれることはありません。
レスポンス例
October 24, 2026 at 18:28(UTC)に、上のコードサンプルのパラメータでこのAPIを呼び出して取得しました。resultsとcountはその呼び出しの実際のレスポンスから個人情報(名前、ハンドル、アバター、プロフィールリンク、連絡先)を削除したものです。リストは先頭の2件のみ掲載しています。id、billing、quotaは呼び出しごとに異なるため、構造のみを示しています。
{
"id": "req_…",
"platform": "taobao",
"action": "search",
"results": [
{
"id": "•••",
"url": "https://item.taobao.com/item.htm?id=1036557039587",
"title": "手冲电子称豆盘咖啡称重展示盘咖啡豆粉秤豆碟茶叶茶则茶器便携",
"price": 59.8,
"currency": "CNY",
"location": "浙江 杭州",
"shop_name": "好货严选工厂",
"image_url": "https://g.search.alicdn.com/img/bao/uploaded/i4/i2/2206584264218/O1CN01sCMEZhb10YE1chua_!!2206584264218-0-C2M.jpg",
"stock": 438,
"shop_id": "2206584264218",
"sold_text": "1000+",
"original_price": 59.8,
"discount_type": "特价秒杀",
"seller_credit_level": 20,
"seller_positive_rate": 100,
"shop_score_description": 4.74,
"shop_score_service": 4.8,
"shop_score_delivery": 4.82,
"subtitle": "",
"search_rank": 1,
"images": [
"https://img.alicdn.com/imgextra/i4/3937219703/O1CN01VRbcrW2LY2B5R9Jq9_!!3937219703-0-C2M.jpg",
"https://img.alicdn.com/imgextra/i3/3937219703/O1CN01Bs0puN2LY2B58j8Nm_!!3937219703-0-C2M.jpg",
"https://img.alicdn.com/imgextra/i4/3937219703/O1CN010vTDpb2LY2B5NXjqG_!!3937219703-0-C2M.jpg"
],
"discount_rate": 100,
"spu_id": "8995243647",
"platform": "taobao"
},
{
"id": "•••",
"url": "https://item.taobao.com/item.htm?id=803310769271",
"title": "Bincoo咖啡电子秤意式专用咖啡豆称重智能手冲迷你便携秤咖啡器具",
"price": 88,
"currency": "CNY",
"shop_name": "bincoo旗舰店",
"image_url": "https://g.search1.alicdn.com/img/bao/uploaded/i4/i3/4249388314/O1CN013agzRw2BHrr0rcgBA_!!0-item_pic.jpg",
"stock": 1267,
"shop_id": "4249388314",
"sold_text": "1000+",
"original_price": 128,
"discount_type": "优惠价",
"seller_credit_level": 16,
"seller_positive_rate": 100,
"shop_score_description": 4.9,
"shop_score_service": 4.92,
"shop_score_delivery": 4.93,
"subtitle": "",
"search_rank": 2,
"images": [
"https://img.alicdn.com/imgextra/i1/4249388314/O1CN01ZKqJQV2BHrqxP8GFJ_!!4249388314.jpg",
"https://img.alicdn.com/imgextra/i2/4249388314/O1CN01tX38az2BHrqz5tjuQ_!!4249388314.jpg",
"https://img.alicdn.com/imgextra/i1/4249388314/O1CN01Jddc8c2BHrqyzT1fk_!!4249388314.jpg"
],
"discount_rate": 68.75,
"spu_id": "7410827142",
"platform": "taobao"
}
],
"count": 10,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}レスポンスフィールド
業務データはresultsに含まれます。この表はレコードに含まれうるフィールドの一覧です。プラットフォームに表示されない値を作り出すことはありません。
| フィールド | 意味 |
|---|---|
id | プラットフォーム上でのレコードの一意なIDです。一意性は1つのプラットフォーム内に限られ、プラットフォームが異なるとIDが重複する場合があります。 |
url | プラットフォーム上のレコードへのリンクです。 |
title | タイトルです。プラットフォームにタイトルがない場合(テキストのみの投稿など)はnullになります。 |
price | 通貨記号を含まない数値で表した価格です。通貨はcurrencyを参照してください。product_detailでは、価格(各skus行のpriceを含む)は主に米ドルから換算されており、Taobaoのページ上の価格より約1~4%高い、または低い場合があります。正となるのはページ上の価格です。 |
currency | 価格の通貨コードです(例:CNY、USD)。priceフィールドが存在してもcurrencyがnullの場合は、通貨を推測しないでください。 |
sold_count | 販売数です。 |
rating | 評価です。スケールはプラットフォームによって異なります。最大値は同じ行のrating_scaleで示されます(通常は5。Booking、Douban、iQIYI、NAVERは10)。プラットフォーム間で比較する前にrating_scaleで換算してください。換算しないと比較結果が逆転することがあります。 |
rating_scale | 同じ行のratingの最大値です。5段階評価では5、10点満点では10になります。行にratingがある場合のみ含まれます。 |
location | 位置情報の説明で、そのまま渡されます。形式はプラットフォームによって異なります。 |
shop_name | ショップ名です。 |
image_url | 画像のリンクです。複数の画像を返す機能では、image_urls配列が返される場合があります。 |
stock | 在庫数です。 |
shop_id | ショップIDです。 |
sold_text | 表示どおりの販売数(search)です。例:100k+。+や10k単位の数値は丸めた表示で、正確な販売数ではありません。 |
original_price | 元の価格(取り消し線付きの価格)です。shopではこれが唯一の価格で、出品に表示される取り消し線付きの金額です。販売価格ではなく、販売価格を大きく上回る場合があります。販売価格はproduct_detailで取得してください。 |
coupon_price | クーポン適用後の価格です。クーポンが適用される場合はpriceより低くなり、適用されない場合は含まれません。 |
discount_type | 表記どおりの割引またはキャンペーンの種類です(例:タイムセール)。 |
is_tmall | ストアが通常のTaobaoショップではなくTmallストアかどうかを示します。両者では出店要件と購入者保証が異なります。 |
brand | ブランドです。 |
category_id | カテゴリIDです。 |
seller_credit_level | 販売者の信用レベルです(数値。高いほど良い)。 |
seller_positive_rate | 販売者の高評価率をパーセントで示します(search)。100は100%を意味します。 |
shop_score_description | ショップの「商品説明との一致」評価です(5点満点)。 |
shop_score_service | ショップのサービス評価です(5点満点)。 |
shop_score_delivery | ショップの配送評価です(5点満点)。 |
subtitle | 商品のサブタイトルです(search)。セールスポイントを短くまとめた一文です。 |
search_rank | この検索結果での順位です(search)。1から始まり、ページをまたいで連番になるため、3ページ目は41から始まります。 |
free_shipping | 送料無料かどうかを示します。 |
selling_points | セールスポイントのタグです。 |
review_tags | レビュータグです。各タグにはtag(ラベル)とcount(言及された回数。含まれない場合があります)があります。 |
images | 画像リンクです。product_detailでは商品写真、reviewsでは購入者が投稿した写真です(レビューに写真がない場合は含まれません)。 |
discount_rate | プラットフォーム上の意味のまま |
spu_id | プラットフォーム上の意味のまま |
category_path | カテゴリパス(パンくずリスト)です。 |
review_count | レビュー数です(商品・ビジネス系の機能で使用)。nullは非公開を示し、0ではありません。 |
latest_review | プラットフォーム上の意味のまま |
seller_type | 販売者タイプのコードです(product_detail)。 |
shop_opened_at | ショップの開店時期を、表記どおりに示します(product_detail)。 |
shop_age_years | プラットフォーム上の意味のまま |
shop_item_count | ショップで販売中の商品数です(product_detail、search、shop)。 |
shop_score_vs_industry | プラットフォーム上の意味のまま |
platform | 取得元プラットフォームの識別子で、リクエストのplatformと同じです(例:xiaohongshu、tiktok)。 |
FAQ
さらに多くの結果をページングで取得できますか?
はい、pageで取得できます。ページは1〜50で、1ページあたり20件、各ページは1回の呼び出しとして課金されます。省略した場合は1ページ目になります。ページングが使えるのは単純なキーワード検索のみで、min_price、max_price、tmall_onlyを指定せず、sortを省略するかrelevanceに設定した場合に限ります。こちらの方が安定した検索方法ですが、ほとんどの行には販売数やショップ名が含まれません。価格範囲やsort=popularを指定した検索では販売数が含まれる場合がありますが、返る結果は最大10件または20件で、ページングできません。そのため、これらと組み合わせてpageに1より大きい値を指定すると、課金前に拒否されます。ランキングはリアルタイムで更新されるため、隣接するページで一部の商品が重複することがあります。ページを結合する際はidで重複を除いてください。
sortはどの並び順に対応していますか?
relevance(デフォルト)、popular、price_desc(価格の高い順)に対応しています。現時点では価格の安い順はありません。人気順または価格順で並べ替えると、1回の呼び出しで返る結果は最大10件で、ページングできません。より多くの結果が必要な場合は、sortを指定せずに単純なキーワード検索を行い、pageでページングしてください。
価格フィルタはどのように機能しますか?
min_priceとmax_priceは商品価格の範囲を指定し、どちらか一方だけでも指定できます。適用されるのは商品検索のみで、評価や呼び出しコストには適用されません。priceは通貨記号なしで返るため、通貨はcurrencyで確認してください。
エラーと課金
- 401
- キーが未指定か無効です。
- 402
- 残高が不足しています。先にチャージしてください。
- 422
- パラメータ名または値が無効です。エラーに含まれる候補を参考に修正してください。課金はされません。
- 429
- 1分あたりのリクエスト上限に達しました。Retry-Afterの指定に従って待ってから再試行してください。
- 503
- 処理を完了できませんでした。保留中の請求額は残高に戻されます。結果が不明な場合は、再試行する前に確認してください。
- 200(空)
- データがありません。課金はされません。