June 29, 2026
1162 閲覧数
Default

TikHub 小红书 API 使用ガイド

TikHubは、App、Web v2、旧版Webの3種類の小紅書インターフェースを提供しており、その中でもApp系が最も安定しており、Web v2系は修復速度が最も速いです。本記事では、各インターフェースの機能、優先順位、およびベストプラクティスを詳しく解説し、最も安定して信頼性の高いインターフェースを選択して、データ取得効率を向上させるお手伝いをします。

XHS(小红書)使用ガイド(App V2 版)

TikHub OpenAPI(https://api.tikhub.io)に基づいて整理した小紅書のAPIドキュメントです。
本ドキュメントは App V2 系列のAPIのみを収録しています。

⚠️ 重要なお知らせ · 系列移行公告(2026-06-17 施行)

  1. App 系列(App V1)および Web 系列(Web V2 / Web V3)は 2026-06-17 をもって恒久的に終了しました。以後は呼び出さないでください。 すべてのAPIを App V2 に統一して移行してください。App V2 は非常に安定しており、現在唯一推奨されサポートされている系列です。予備 / フォールバック(fallback)API の設定は不要です。
  2. 各系列終了の背景:Web V3 は長期的な安定性が低く、Web V2 はすでに廃止手続きに入っているため、Web 系列は保持しません。App V1 も同時にメンテナンスを停止しました。もし以前のコードでこれらの系列を呼び出している場合は、できるだけ早く下記の対応する App V2 エンドポイントへ置き換えてください。

目次


共通説明

  • Base URLhttps://api.tikhub.io
  • 認証:リクエストヘッダーに Authorization: Bearer YOUR_API_KEY を含めます。
  • 系列説明:App 系列(App V1)および Web 系列(Web V2 / Web V3)は 2026-06-17 に恒久終了しました。App V2 は現在唯一推奨されサポートされている系列で、最も安定しており、データも最も完全です。予備 / フォールバック API の設定は不要です。
  • ID と共有リンクはどちらか一方:ほとんどのAPIは、オブジェクト ID(note_id / user_id / page_id)の送信にも、共有リンク(share_text、APP / Web の長短リンクに対応)の送信にも対応しています。両方を送る場合はID を優先します。共有リンクしか手元にない場合は、直接 share_text を渡せばよく、先に ID を解析する必要はありません。
  • ノート種別:図文ノートと動画ノートはそれぞれ独立した App V2 エンドポイントを使用します。詳細は第 1 節を参照してください。

1. 単一ノート

小紅書のノートは 2 種類あります:図文ノート(画像ノート)動画ノート。App V2 は両方に独立したエンドポイントを提供しており、データが最も完全です。

1.1 画像ノート(図文ノート)

図文ノートの完全な詳細データ(画像URL、タイトル、本文、タグ、インタラクションデータなど)を取得します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_image_note_detail
  • 公式ドキュメントdocs.tikhub.io/420136391e0
  • パラメータ
    • note_id (string, 任意):ノート ID、例:"697c0eee000000000a03c308"
    • share_text (string, 任意):小紅書の共有リンク(APP / Web 対応)
    • どちらか一方を指定。note_id を優先し、両方送信した場合は note_id を優先
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_image_note_detail"
7params = {
8    "note_id": "697c0eee000000000a03c308",
9    # "share_text": "https://www.xiaohongshu.com/discovery/item/...",
10}
11r = requests.get(url, headers=HEADERS, params=params)
12print(r.json())

1.2 動画ノート

動画ノートの完全な詳細データ(動画URL、カバー、再生時間、タイトル、本文、インタラクションデータなど)を取得します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_video_note_detail
  • 公式ドキュメントdocs.tikhub.io/420136392e0
  • パラメータ
    • note_id (string, 任意):例:"697c0eee000000000a03c308"
    • share_text (string, 任意)
    • どちらか一方を指定。note_id を優先
python
1url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_video_note_detail"
2params = {
3    "note_id": "697c0eee000000000a03c308",
4    # "share_text": "https://www.xiaohongshu.com/discovery/item/...",
5}
6r = requests.get(url, headers=HEADERS, params=params)
7print(r.json())

2. ユーザー情報

user_id を通じて、小紅書ユーザーの公開プロフィール(ニックネーム、アバター、自己紹介、フォロワー数、フォロー数、ノート数など)を取得します。

💡 共有リンクしかない? App V2 API は user_id / share_text のどちらか一方に対応しているため、ユーザーページの共有リンクをそのまま share_text に渡せばよく、先に user_id を解析する必要はありません。

指定ユーザーの詳細情報を取得します。ニックネーム、アバター、自己紹介、フォロワー数、フォロー数、ノート数などを含みます。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_user_info
  • 公式ドキュメントdocs.tikhub.io/420136395e0
  • パラメータ
    • user_id (string, 任意):ユーザー ID、例:"61b46d790000000010008153"
    • share_text (string, 任意):小紅書ユーザーの共有リンク(APP / Web 対応)
    • どちらか一方を指定。user_id を優先し、両方送信した場合は user_id を優先
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_user_info"
7params = {
8    "user_id": "61b46d790000000010008153",
9    # "share_text": "https://www.xiaohongshu.com/user/profile/...",
10}
11r = requests.get(url, headers=HEADERS, params=params)
12print(r.json())

3. ユーザー作品

user_id に従ってユーザーのノート一覧を取得します。すべてのAPIはカーソルページネーション(cursor)を使用します。App V2 では 2 つのAPIを提供しています:ユーザーの公開済みノート一覧と、ユーザーの公開お気に入りノート一覧です。

💡 共有リンクしかない? このAPIは user_id / share_text のどちらか一方に対応しているため、共有リンクをそのまま share_text に渡せばよいです。

3.1 ユーザーの公開済みノート一覧を取得

指定ユーザーが公開したノート一覧を取得します。カーソルページネーションを使用します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_user_posted_notes
  • 公式ドキュメントdocs.tikhub.io/420136396e0
  • パラメータ
    • user_id (string, 任意):ユーザー ID、例:"61b46d790000000010008153"
    • share_text (string, 任意):小紅書ユーザーの共有リンク(APP / Web 対応)
    • どちらか一方を指定。user_id を優先し、両方送信した場合は user_id を優先
    • cursor (string, 任意):ページングカーソル。初回リクエストでは空欄。次ページでは前回レスポンス中の notes リストの最後のノートの cursor を取得(パス例:$.data.data.notes[-1].cursor
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_user_posted_notes"
7params = {
8    "user_id": "61b46d790000000010008153",
9    "cursor": "",   # Empty for first request / 首次留空
10}
11r = requests.get(url, headers=HEADERS, params=params)
12print(r.json())

3.2 ユーザーの公開お気に入りノート一覧を取得

指定ユーザーの公開お気に入りノート一覧を取得します(ユーザー自身が投稿したものではなく、ta がお気に入り登録したコンテンツです)。カーソルページネーションを使用します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_user_faved_notes
  • 公式ドキュメントdocs.tikhub.io/420136397e0
  • パラメータ
    • user_id (string, 任意):例:"5a8cf39111be10466d285d6b"
    • share_text (string, 任意)
    • どちらか一方を指定。user_id を優先
    • cursor (string, 任意):ページングカーソル。初回は空欄。次ページでは前ページの最後のノートの note_id
python
1url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_user_faved_notes"
2params = {
3    "user_id": "5a8cf39111be10466d285d6b",
4    "cursor": "",
5}
6r = requests.get(url, headers=HEADERS, params=params)
7print(r.json())

4. コメント

小紅書のコメントは 2 層に分かれます:一次コメント(ノート下のコメント一覧)二次コメント(特定コメント下の返信 / 子コメント一覧)

4.1 一次コメント(ノート下のコメント一覧)

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_note_comments
  • 公式ドキュメントdocs.tikhub.io/420136394e0
  • パラメータ
    • note_id (string, 任意):ノート ID
    • share_text (string, 任意):共有リンク(note_id とどちらか一方、note_id を優先)
    • cursor (string, 任意):ページングカーソル。初回は空欄
    • index (integer, 任意):コメントインデックス。初回は 0 を送信
    • pageArea (string, 任意):折りたたみ状態、UNFOLDED(デフォルト)/ FOLDED
    • sort_strategy (string, 任意):並び順、default / latest_v2(デフォルト) / like_count
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_note_comments"
7params = {
8    "note_id": "697c0eee000000000a03c308",
9    "cursor": "",
10    "index": 0,
11    "pageArea": "UNFOLDED",
12    "sort_strategy": "latest_v2",
13}
14r = requests.get(url, headers=HEADERS, params=params)
15print(r.json())

4.2 二次コメント(子コメント / 返信一覧)

特定の一次コメント下にあるすべての返信(子コメント)を取得します。カーソルページネーションを使用します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_note_sub_comments
  • 公式ドキュメントdocs.tikhub.io/420748830e0
  • パラメータ
    • note_id (string, 任意)
    • share_text (string, 任意)(note_id とどちらか一方、note_id を優先)
    • comment_id (string, 必須):親コメント ID
    • cursor (string, 任意):初回は空欄。次ページでは $.data.cursor から取得
    • index (integer, 任意):初回は 1 を送信。次ページでは $.data.cursor から取得
python
1url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_note_sub_comments"
2params = {
3    "note_id": "699916e6000000001d0253da",
4    "comment_id": "PARENT_COMMENT_ID",
5    "cursor": "",
6    "index": 1,
7}
8r = requests.get(url, headers=HEADERS, params=params)
9print(r.json())

5. 検索

小紅書の検索は 2 種類あります:ノート検索ユーザー検索。App V2 は両方を提供しています。

ページ送りの際は、初回検索で返された search_id / search_session_id を必ず付けてください。

5.1 ノート検索

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/search_notes
  • 公式ドキュメントdocs.tikhub.io/420136398e0
  • パラメータ
    • keyword (string, 必須):検索キーワード、例:"美食推荐"
    • page (integer, 任意):ページ番号、1 から開始
    • sort_type (string, 任意):並び順、general(総合、デフォルト)/ time_descending(最新)/ popularity_descending(いいね数が多い)/ comment_descending(コメント数が多い)/ collect_descending(お気に入り数が多い)/ english_preferred(英語優先)
    • note_type (string, 任意):ノート種別、不限(デフォルト)/ 视频笔记 / 普通笔记 / 直播笔记
    • time_filter (string, 任意):公開時期、不限(デフォルト)/ 一天内 / 一周内 / 半年内
    • search_id (string, 任意):ページ送り時に初回レスポンスの値を送信
    • search_session_id (string, 任意):ページ送り時に初回レスポンスの値を送信
    • source (string, 任意):ソース、デフォルト explore_feed
    • ai_mode (integer, 任意):AI モード、0(オフ、デフォルト)/ 1(オン)
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/search_notes"
7params = {
8    "keyword": "美食推荐",
9    "page": 1,
10    "sort_type": "general",
11    "note_type": "不限",
12    "time_filter": "不限",
13    # Pass search_id and search_session_id from first response for pagination / 翻页时需要带上首次响应里的 search_id 和 search_session_id
14    # "search_id": "...",
15    # "search_session_id": "...",
16}
17r = requests.get(url, headers=HEADERS, params=params)
18print(r.json())

5.2 ユーザー検索

1ページあたり固定で 20 件返し、ページングに対応しています。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/search_users
  • 公式ドキュメントdocs.tikhub.io/420136399e0
  • パラメータ
    • keyword (string, 必須):検索キーワード、例:"美食博主"
    • page (integer, 任意):ページ番号、1 から開始
    • search_id (string, 任意):ページ送り時に初回レスポンスの値を送信
    • source (string, 任意):ソース、デフォルト explore_feed
python
1url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/search_users"
2params = {
3    "keyword": "美食博主",
4    "page": 1,
5    # Pass search_id from first response for pagination / 翻页时带上首次响应里的 search_id
6    # "search_id": "...",
7}
8r = requests.get(url, headers=HEADERS, params=params)
9print(r.json())

6. 話題

小紅書の話題関連APIは 2 つに分かれます:話題詳細話題下のノート一覧

⚠️ すべてのAPIは page_id(話題 / 話題タグ ID)を一意の識別子として使用します。

6.1 話題詳細

話題の詳細(話題名、閲覧数、議論数、共有情報など)を取得します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_topic_info
  • 公式ドキュメントdocs.tikhub.io/420136407e0
  • パラメータ
    • page_id (string, 必須):話題ページ ID、例:"5c1cc866febed9000184b7c1"
    • source (string, 任意):ソース、デフォルト normal
    • note_id (string, 任意):ソースノート ID。ノートから話題へ遷移する場合に指定可能
python
1import requests
2
3BASE_URL = "https://api.tikhub.io"
4HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
5
6url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_topic_info"
7params = {
8    "page_id": "5c1cc866febed9000184b7c1",
9    "source": "normal",
10    # "note_id": "...",  # Optional: pass when navigating from a note / 从笔记跳转过来时可带
11}
12r = requests.get(url, headers=HEADERS, params=params)
13print(r.json())
14# Response contains page_info (name/views/discussions), tabs, share_info, etc. / 返回包含 page_info(名称/浏览量/讨论数)、tabs、share_info 等

6.2 話題ノート一覧(話題下のノート)

特定の話題 / 話題タグ下のノート一覧を取得します。カーソルページネーションを使用します。

  • 方法:GET
  • パス/api/v1/xiaohongshu/app_v2/get_topic_feed
  • 公式ドキュメントdocs.tikhub.io/420136408e0
  • パラメータ
    • page_id (string, 必須):話題ページ ID
    • sort (string, 任意):trend(最も人気、デフォルト)/ time(最新)
    • cursor_score (string, 任意):ページングカーソルスコア。次ページでは前ページ最後の item の cursor_score を送信
    • last_note_id (string, 任意):次ページでは前ページ最後のノート ID(items[-1].id)を送信
    • last_note_ct (string, 任意):次ページでは前ページ最後のノート作成時刻(items[-1].create_time)を送信
    • session_id (string, 任意):セッション ID。ページ送り時は同一のものを維持
    • first_load_time (string, 任意):初回読み込み時刻のタイムスタンプ。ページ送り時は同一のものを維持
    • source (string, 任意):ソース、デフォルト normal
python
1url = f"{BASE_URL}/api/v1/xiaohongshu/app_v2/get_topic_feed"
2
3# First request: pass only page_id and sort / 首次请求:只传 page_id 和 sort
4params = {
5    "page_id": "5c1cc866febed9000184b7c1",
6    "sort": "trend",
7}
8r = requests.get(url, headers=HEADERS, params=params)
9data = r.json()
10print(data)
11
12# Next page: pass through the following fields from the first response / 翻页请求:从首次响应中取下列字段透传
13# items = data["data"]["items"]
14# next_params = {
15#     "page_id": "5c1cc866febed9000184b7c1",
16#     "sort": "trend",
17#     "cursor_score": items[-1]["cursor_score"],
18#     "last_note_id": items[-1]["id"],
19#     "last_note_ct": items[-1]["create_time"],
20#     "session_id": data["data"]["session_id"],
21#     "first_load_time": data["data"]["first_load_time"],
22# }

この記事は気に入りましたか?

友達や同僚と共有しましょう!

Default
Last updated: July 6, 2026
相关文章
正在检查服务状态...
TikHub 小红书 API 使用ガイド - TikHub.io