zpaper-draft

Type to search...

to open search from anywhere

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が処理します。

クエリパラメータ

パラメータ必須デフォルト説明
fromstringいいえ30日前取得範囲の開始日時(ISO 8601形式)
tostringいいえ現在時刻取得範囲の終了日時(ISO 8601形式)
limitnumberいいえ1000最大取得件数(上限5000)

レスポンス

成功時(200 OK)

{
  "logs": [
    {
      "keyword": "Claude Code",
      "timestamp": "2026-03-01T12:34:56.789Z",
      "resultCount": 5
    }
  ],
  "total": 42
}

レスポンスフィールド

フィールド説明
logsarrayログエントリの配列(timestampの降順)
totalnumberフィルタ条件に一致するエントリの総数(limit適用前)

各ログエントリのフィールドは以下の通りです。

フィールド説明
keywordstring検索クエリ字列
timestampstring検索実行時刻(ISO 8601)
resultCountnumber検索結果の件数

レスポンスヘッダ

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件に制限して返します。

キーワードビューア

ログデータを可視化するダッシュボードアプリが用意されています。詳細はキーワード検索を参照してください。