Keyword Logs API
Keyword Logs API
概要
検索キーワードのログを取得するAPIです。Cloudflare Pages Functions上で動作し、Cloudflare KVに蓄積されたキーワードログデータを返します。
エンドポイント
GET /pj/zpaper/api/keyword-logs
Cloudflare Pages Functionsのファイルベースルーティングにより、functions/pj/zpaper/api/keyword-logs.tsが処理します。
クエリパラメータ
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
from | string | いいえ | 30日前 | 取得範囲の開始日時(ISO 8601形式) |
to | string | いいえ | 現在時刻 | 取得範囲の終了日時(ISO 8601形式) |
limit | number | いいえ | 1000 | 最大取得件数(上限5000) |
レスポンス
成功時(200 OK)
{
"logs": [
{
"keyword": "Claude Code",
"timestamp": "2026-03-01T12:34:56.789Z",
"resultCount": 5
}
],
"total": 42
}
レスポンスフィールド
| フィールド | 型 | 説明 |
|---|---|---|
logs | array | ログエントリの配列(timestampの降順) |
total | number | フィルタ条件に一致するエントリの総数(limit適用前) |
各ログエントリのフィールドは以下の通りです。
| フィールド | 型 | 説明 |
|---|---|---|
keyword | string | 検索クエリ字列 |
timestamp | string | 検索実行時刻(ISO 8601) |
resultCount | number | 検索結果の件数 |
レスポンスヘッダ
Content-Type: application/json
Cache-Control: no-cache
Access-Control-Allow-Origin: *
ストレージ
キーワードログはCloudflare KVのKEYWORD_LOGSネームスペースに保存されます。wrangler.tomlでバインディングが設定されています。
書き込み
検索APIが検索を実行した際に、結果が1件以上あればcontext.waitUntil()を使用してfire-and-forget方式で非同期に書き込みます。
- キー形式:
<ISO-timestamp>-<6文字ランダム> - 値:
{ keyword, timestamp, resultCount }のJSON
読み取り
このAPIはkv.list()でカーソルベースのページネーションで全キーを列挙し、各エントリをkv.get()で取得します。日付範囲でフィルタリングした後、timestampの降順でソートし、limit件に制限して返します。
キーワードビューア
ログデータを可視化するダッシュボードアプリが用意されています。詳細はキーワード検索を参照してください。