mcpField
T
TikTok Trends API

TikTok Trends API

リモート
trendsapi.aiソーシャルメディア22 週間前に更新
リポジトリ公式サイト

TikTok Trends API について

TikTok Trends API は、TikTok のハッシュタグや検索関心のトレンドデータを提供し、Python と JavaScript/TypeScript のクライアントも用意しています。履歴系列、成長率の計算、リアルタイムのトレンド一覧を取得できます。

主な機能

  1. 01ハッシュタグの履歴トレンド系列を取得
  2. 02複数期間の成長率を計算
  3. 03急上昇中のタグや検索を取得
  4. 04同期・非同期クライアントを利用
  5. 05ページネーションとフィード分類を指定

活用シーン

  1. 01特定ハッシュタグへの関心の変化を追跡
  2. 02期間ごとのキーワード成長率を比較
  3. 03TikTok の急上昇タグや検索を確認

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://tiktok.api.trendsapi.ai/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://tiktok.api.trendsapi.ai/mcp認証が必要

ツール

詳細

TikTok ハッシュタグのボリューム API

TikTok Trends API を通じた、TikTok のハッシュタグと検索関心度のトレンドです。履歴、成長率、リアルタイムでトレンドになっているハッシュタグを取得できます。

License: MIT PyPI Python npm

キー:trendsapi.ai/#get-key。HTTP の仕様とすべてのソース:trendsapi-ai/trendsapi。

認証

pip install trendsapi-tiktok
export TRENDSAPI_KEY=your_key

Python 3.9 以降に対応しています。HTTP API と同じキーを使用します。

from trendsapi_tiktok import TrendsAPI

client = TrendsAPI()                    # TRENDSAPI_KEY
# client = TrendsAPI(api_key="YOUR_KEY")

キーワード用ヘルパーの source の既定値は "tiktok" です。同じクライアントでほかのプラットフォームを利用するには、source= を指定してください。正式なフルクライアント(すべてのソースに対応し、プリセットなし):trendsapi。

メソッド

メソッドREST mode戻り値
get_time_series(keyword, source=, data_mode=)get_time_serieslist[TrendsDataPoint]
get_growth(keyword, percent_growth=, source=, data_mode=)get_growthGetGrowthResponse
get_live(limit=, offset=, category=)get_top_trendsGetTopTrendsResponse
get_top_trends(type=, ...)get_top_trendsGetTopTrendsResponse

source は小文字(tiktok)です。type は正確に指定してください(TikTok Trending Hashtags)。これらを混在させると 400 エラーになります。

from trendsapi_tiktok import TrendsAPI

client = TrendsAPI()                    # TRENDSAPI_KEY
# client = TrendsAPI(api_key="YOUR_KEY")

series = client.get_time_series("matcha")
print(series[-1].date, series[-1].value)

growth = client.get_growth("matcha", percent_growth=["3M", "12M"])
print(growth.results[0].growth, growth.results[0].direction)

hot = client.get_live(limit=10)
print(hot.data)                         # [[1, "..."], ...]

get_time_series

points = client.get_time_series("matcha")

各ポイントの項目:

フィールド常に含まれる意味
dateはいYYYY-MM-DD
valueはいこの系列の 0~100 のインデックス
keywordはいエコー
volumeいいえ利用可能な場合の絶対ボリューム
source または datatypeいいえパイプラインのラベル

Python では list[TrendsDataPoint] が返されます。["date"] ではなく .date と .value を使用してください。 JS では同じフィールドがオブジェクトのプロパティとして返されます。

get_growth

g = client.get_growth("matcha", percent_growth=["12M", "3M", "YTD"])
print(g.results[0].growth, g.results[0].direction)

percent_growth の既定値は ["12M"] です。プリセット:7D 14D 30D 1M 2M 3M 6M 9M 12M/1Y 18M 24M/2Y 36M/3Y 48M 60M/5Y MTD QTD YTD。カスタム指定:{"name": "Launch", "recent": "2024-06-01", "baseline": "2024-01-01"}。

フィールド意味
search_termキーワード
data_sourceソース
results各期間のオブジェクト(period、growth、direction、日付、値)
metadata件数/成功フラグ

複数の期間を指定しても、リクエスト数は 1 回です。Python:growth.results[0].growth。JS:growth.results[0].growth。

get_live

hot = client.get_live(limit=10)
フィールド意味
as_of_tsスナップショットの時刻
typeフィード名
limit、offset、countページネーション
data[rank, label] の行

Python:hot.data。JS:hot.data。offset= と category= は省略可能です(Amazon Best Sellers by Category、Top Websites のみ)。

非同期

import asyncio
from trendsapi_tiktok import AsyncTrendsAPI

async def main():
    c = AsyncTrendsAPI()
    return await asyncio.gather(
        c.get_time_series("matcha"),
        c.get_time_series("matcha", source="google search"),
    )

asyncio.run(main())

HTTP 200 の応答ごとに、課金対象のリクエストが 1 回発生します。

Pandas

from dataclasses import asdict
import pandas as pd
from trendsapi_tiktok import TrendsAPI

df = pd.DataFrame(asdict(p) for p in TrendsAPI().get_time_series("matcha"))
df["date"] = pd.to_datetime(df["date"])
print(df.set_index("date")["value"].resample("ME").mean().tail())

JavaScript / TypeScript

npm install trendsapi-tiktok

Node 18 以降、Deno、Bun、Workers に対応しています。同じ API キーを使用します。上記のフィールド一覧が適用されます。

メソッド
メソッドREST mode戻り値
getTimeSeries(keyword, { source, data_mode })get_time_series週次のポイント
getGrowth(keyword, { percent_growth, source, data_mode })get_growth成長率オブジェクト
getLive({ limit, offset, category })get_top_trendsリアルタイムフィード
getTopTrends({ type, ... })get_top_trendsリアルタイムフィード
import { TrendsAPI } from "trendsapi-tiktok";

const client = new TrendsAPI({ apiKey: process.env.TRENDSAPI_KEY! });
const series = await client.getTimeSeries("matcha");
console.log(series.at(-1)?.date, series.at(-1)?.value);

const growth = await client.getGrowth("matcha", {
  percent_growth: ["3M", "12M"],
});
console.log(growth.results[0].growth, growth.results[0].direction);

const live = await client.getLive({ limit: 10 });
console.log(live.data);                 // [[1, "..."], ...]

呼び出し(curl)

フィールド値
エンドポイントPOST https://api.trendsapi.ai/api
認証Authorization: Bearer $TRENDSAPI_KEY
履歴get_time_series または get_growth とともに source: tiktok を指定
キーワードハッシュタグまたはトピック。例:matcha(# は省略可能)
ライブの typeTikTok Trending Hashtags、TikTok Trending Searches、TikTok Shop Hot Products
curl -sS -X POST https://api.trendsapi.ai/api \
  -H "Authorization: Bearer $TRENDSAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"get_time_series","source":"tiktok","keyword":"matcha"}'

ソースに関する注意事項

  • value はこのハッシュタグの値であり、視聴回数ではありません。値は0~100です。
  • tiktok trending hashtags(大文字・小文字が誤っています)は400です。
  • 動画の公開には、引き続きTikTok独自のAPIが必要です。このエンドポイントで取得できるのは需要データのみです。

エラー

HTTPクライアント
200ペイロードを解析しました。Pythonのデータクラス/JSの型付きオブジェクト
400エラーが発生します。source または type のスペルを修正してください
401エラーが発生します。TRENDSAPI_KEY を確認してください
404エラーが発生します。そのキーワードの系列はありません。再試行しないでください
429エラーが発生します。クォータ超過です
5xxクライアントが再試行した後、エラーが発生します

HTTPの body フィールドはJSON文字列です。SDKはこれをデコードします。生のcurlでは、body をもう一度解析する必要があります。

サイト:https://trendsapi.ai/trends/tiktok-trends。

ライセンス

MIT。詳細はLICENSEをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。