{
  "lang": "ja",
  "ページ": "https://x402-catalog-history.ai-business-surface.workers.dev/ja/catalog-diff",
  "title": "x402 カタログの差分を先週から取る方法（1,282件の観測から差分28件・実測）",
  "h1": "x402 のカタログは先週から何が変わったか：変わった分だけを取る（実測）",
  "description": "x402 のカタログ観測を、全件ではなく差分だけ取る方法です。無料の /pack/diff/sample で先頭5件と目録を読み、1,282件の観測から差分28件（追加28・変更0・削除0、1,226件は変わらず）を抽出した実測値を示します。差分JSONLは173,666 Bで、全件7,363,916 Bの2.36%でした。",
  "検索語": "x402 catalog diff since last week / x402 カタログ 差分",
  "読者の問い": "先週から x402 のカタログの何が変わったのか。全部を買わずに、変わった分だけを知りたい。",
  "実測日": "2026-10-18 JST（差分は hist-v1 → hist-v2、対象期間 2026-10-15T19:42:59Z〜21:12:59Z）",
  "実測": {
    "caption": "差分経路の無課金 GET 実測（2026-10-18 JST・公開URL・各1回）",
    "columns": [
      "経路",
      "応答",
      "宣言価格（USDC）",
      "本文",
      "応答時間",
      "返るもの"
    ],
    "rows": [
      [
        "/pack/diff/sample?from=hist-v1",
        "200",
        "無料",
        "29,532 B",
        "659 ms",
        "差分の先頭5件（全フィールド）"
      ],
      [
        "/pack/diff/sample?from=hist-v1&format=manifest",
        "200",
        "無料",
        "4,513 B",
        "412 ms",
        "件数・バイト数・sha256 の目録"
      ],
      [
        "/pack/diff?from=hist-v1",
        "402",
        "0.05",
        "16,140 B",
        "285 ms",
        "差分の本体（JSONL/CSV）"
      ],
      [
        "/changes",
        "402",
        "0.02",
        "15,168 B",
        "293 ms",
        "1経路の前回からの差分"
      ],
      [
        "/history",
        "402",
        "0.02",
        "15,373 B",
        "292 ms",
        "観測の履歴"
      ],
      [
        "/status",
        "200",
        "無料",
        "16,756 B",
        "7,801 ms",
        "経路ごとの納品記録（JSON 表現）"
      ],
      [
        "/ja",
        "200",
        "無料",
        "36,404 B",
        "426 ms",
        "日本語の入口（JSON 表現）"
      ]
    ],
    "note": "GET はすべて Accept: application/json で1回ずつ。402 の3経路は payment-required ヘッダを返し、本文の accepts[0] は base の USDC（asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913）を宣言していました。応答時間は wall clock、本文はバイト数です。無料の2経路は同じ差分を、件数と先頭5件だけ先に見せます。"
  },
  "見出し": [
    "結論",
    "実測（無課金 GET）",
    "差分の中身（hist-v1 → hist-v2）",
    "手順（買う前に無料で確かめる）",
    "差分を読むときの注意",
    "次の一歩"
  ],
  "本文": [
    {
      "見出し": "結論",
      "html": "<p>先週からの変化は、<strong>全件をもう一度買うのではなく、ベース版と対象版の差分だけを買う</strong>ことで取れます。当方の観測パック hist-v1（1,254件）と hist-v2（1,282件）の差分は <strong>28件</strong>（追加28・変更0・削除0）で、変わらなかった <strong>1,226件</strong> は差分に含まれません。差分のJSONLは <strong>173,666 B</strong> で、全件の <strong>7,363,916 B</strong> の <strong>2.36%</strong> でした。</p>\n<p>買う前に、無料の <code>/pack/diff/sample?from=hist-v1</code> で<strong>先頭5件</strong>と、<code>&amp;format=manifest</code> で<strong>件数・サイズ・sha256</strong>を確認できます。今回の無料サンプルは 29,532 B・659 ms、目録は 4,513 B・412 ms で返りました。</p>"
    },
    {
      "見出し": "実測（無課金 GET）",
      "html": "<p>2026-10-18 JST に公開URLへ支払いなしで1回ずつ GET した結果です。402 の3経路は本文の <code>accepts[0].maxAmountRequired</code> がそのまま宣言価格で、<code>50000</code> は 0.05 USDC、<code>20000</code> は 0.02 USDC です。</p>\n<table>\n<thead><tr><th>経路</th><th>応答</th><th>宣言価格（USDC）</th><th>本文</th><th>応答時間</th><th>返るもの</th></tr></thead>\n<tbody>\n<tr><td><code>/pack/diff/sample?from=hist-v1</code></td><td>200</td><td>無料</td><td>29,532 B</td><td>659 ms</td><td>差分の先頭5件（全フィールド）</td></tr>\n<tr><td><code>/pack/diff/sample?from=hist-v1&amp;format=manifest</code></td><td>200</td><td>無料</td><td>4,513 B</td><td>412 ms</td><td>件数・バイト数・sha256 の目録</td></tr>\n<tr><td><code>/pack/diff?from=hist-v1</code></td><td>402</td><td>0.05</td><td>16,140 B</td><td>285 ms</td><td>差分の本体（JSONL/CSV）</td></tr>\n<tr><td><code>/changes</code></td><td>402</td><td>0.02</td><td>15,168 B</td><td>293 ms</td><td>1経路の前回からの差分</td></tr>\n<tr><td><code>/history</code></td><td>402</td><td>0.02</td><td>15,373 B</td><td>292 ms</td><td>観測の履歴</td></tr>\n<tr><td><code>/status</code></td><td>200</td><td>無料</td><td>16,756 B</td><td>7,801 ms</td><td>経路ごとの納品記録（JSON 表現）</td></tr>\n<tr><td><code>/ja</code></td><td>200</td><td>無料</td><td>36,404 B</td><td>426 ms</td><td>日本語の入口（JSON 表現）</td></tr>\n</tbody>\n</table>\n<p>GET はすべて <code>Accept: application/json</code> で1回ずつです。402 の3経路はすべて <code>payment-required</code> ヘッダを返し、<code>accepts[0]</code> の <code>network</code> は <code>base</code>、<code>asset</code> は <code>0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913</code>（USDC）でした。無料の2経路は課金なしで、同じ差分の件数と先頭5件を返します。</p>"
    },
    {
      "見出し": "差分の中身（hist-v1 → hist-v2）",
      "html": "<p>無料の目録が返した集計です。差分は「変わったものだけ」で、変わらなかった <strong>1,226件</strong> は意図的に入っていません。追加28件は<strong>ベース版に無い観測</strong>で、その中身が前回観測から変わっていることもあります（先頭5件のうち3件は <code>change_status=changed</code>）。</p>\n<table>\n<thead><tr><th>項目</th><th>実測値</th></tr></thead>\n<tbody>\n<tr><td>ベース hist-v1 の観測</td><td>1,254件</td></tr>\n<tr><td>対象 hist-v2 の観測</td><td>1,282件</td></tr>\n<tr><td>差分レコード</td><td>28件（全件の 2.18%）</td></tr>\n<tr><td>追加 / 変更</td><td>28 / 0</td></tr>\n<tr><td>ベースから削除</td><td>0件</td></tr>\n<tr><td>変わらず（差分に含めない）</td><td>1,226件</td></tr>\n<tr><td>差分 JSONL</td><td>173,666 B（全件 7,363,916 B の 2.36%）</td></tr>\n<tr><td>差分 CSV</td><td>127,140 B</td></tr>\n<tr><td>差分の対象期間</td><td>2026-10-15T19:42:59Z 〜 21:12:59Z（90分）</td></tr>\n</tbody>\n</table>\n<p>先頭5件で実際に動いていた値の例です。<code>catalog.resources</code> は <code>totalResources</code> が <strong>20,477 → 20,478</strong>（+1）、<code>pageDistinctHosts</code> が <strong>17 → 18</strong>、<code>pageMaxTimeoutCounts</code> の 120秒が <strong>80 → 79</strong>・300秒が <strong>11 → 12</strong> でした。差分には変更フィールド名（<code>totalResources</code> / <code>pageFingerprint</code> / <code>pageDistinctHosts</code> / <code>pagePriceBands</code> / <code>pageMaxTimeoutCounts</code> / <code>pageHosts</code>）が入り、全件を読み直さずに済みます。</p>"
    },
    {
      "見出し": "手順（買う前に無料で確かめる）",
      "html": "<ol>\n<li><strong>無料サンプルで形を見る</strong>。<code>GET /pack/diff/sample?from=hist-v1</code> は 200 で先頭5件を全フィールドで返します。ここで <code>diff_kind</code>（added / changed）と <code>changed_fields</code> の形を確認します。</li>\n<li><strong>無料の目録で件数とサイズを固定する</strong>。<code>GET /pack/diff/sample?from=hist-v1&amp;format=manifest</code> は 200 で、差分28件・除外1,226件・削除0件・JSONL 173,666 B・sha256 を返します。買う前に、何件・何バイト・どのハッシュかを決められます。</li>\n<li><strong>必要な分だけ買う</strong>。1経路の変化だけなら <code>/changes</code>（0.02 USDC）、観測の履歴なら <code>/history</code>（0.02 USDC）、パック全体の差分なら <code>/pack/diff?from=hist-v1</code>（0.05 USDC）です。</li>\n<li><strong>ベースに適用する</strong>。差分はベースの上に重ねます。<code>(observed_at, target_id)</code> が差分に無いベースの記録はそのまま残し、差分の記録で置換・追加します。変わらなかった記録は差分に入っていないので、ベース側を消してはいけません。</li>\n</ol>\n<p>今回の実測は90分の窓ですが、期間を1週間にしても手順は同じです。週の初めの版と今の版の2つを用意し、その差分を取ります。差分の値は <code>from</code> と <code>to</code> の <code>changes</code>（<code>field</code> / <code>from</code> / <code>to</code>）にそのまま入っています。</p>"
    },
    {
      "見出し": "差分を読むときの注意",
      "html": "<ul>\n<li><strong>added と changed は別物</strong>です。added はベース版に無い観測、changed は同じ対象の値が動いた観測です。今回の28件はすべて added で、変更0件でした。</li>\n<li><strong>変わらなかった件数は「変化が無い」証明</strong>です。1,226件は差分に入っていませんが、これは「その間に観測が無かった」ではなく「前回と同じだった」を意味します。</li>\n<li><strong>差分はベースとセット</strong>です。差分だけでは現在の全量は復元できません。適用方法は目録の <code>apply</code> に書かれており、今回の文面は「ベースの記録のうち差分に無い <code>(observed_at,target_id)</code> を残し、差分の記録で置換・追加する」でした。</li>\n<li><strong>期間は自分で決める</strong>です。今回の差分の対象期間は90分で、「先週から」を見たいときは、週の初めの版をベースに指定します。</li>\n</ul>"
    },
    {
      "見出し": "次の一歩",
      "html": "<p>まず無料の <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/pack/diff/sample?from=hist-v1\"><code>/pack/diff/sample?from=hist-v1</code></a> で先頭5件を、<a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/pack/diff/sample?from=hist-v1&amp;format=manifest\"><code>&amp;format=manifest</code></a> で件数とサイズを見てください。課金は起きません。そのうえで、パック全体の差分が要るなら <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/pack/diff?from=hist-v1\"><code>/pack/diff?from=hist-v1</code></a>（0.05 USDC）、1経路だけなら <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/changes\"><code>/changes</code></a>（0.02 USDC）です。全件のパックは <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/pack\"><code>/pack</code></a> にあります。</p>\n<p>相手の端点そのものが生きているか・いくら請求するかは、<a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/ja/check-before-paying\"><code>/ja/check-before-paying</code></a> の手順（無課金 GET）で先に確認できます。</p>"
    }
  ],
  "一覧": "https://x402-catalog-history.ai-business-surface.workers.dev/ja"
}
