{
  "lang": "ja",
  "ページ": "https://x402-catalog-history.ai-business-surface.workers.dev/ja/catalog-diff-since-last-week",
  "title": "x402 catalog diff since last week — 差分の中身を無料で先に見る（実測）",
  "h1": "x402 カタログの「先週からの差分」を買う前に — 無料サンプル5件と本番28件の実測",
  "description": "x402 catalog diff since last week は /changes と /history が 0.02 USDC、/pack/diff が 0.05 USDC。2026-10-19 に支払いなしで測ると、無料の /pack/diff/sample は 29,532 B・5件（すべて added）、manifest は 4,513 B で 28 added / 0 changed / 1,226 excluded / 0 removed（hist-v1 → hist-v2）でした。つまり件数は無料で分かり、全量は 0.02〜0.05 で買う構造です。base や format の誤りは /pack/diff では支払い前に 400（397 B / 196 B）、/changes の since と /history の limit は 402 のまま（21,752 B / 21,957 B）でした。",
  "検索語": "x402 catalog diff since last week",
  "読者の問い": "先週からカタログの何が変わったかだけを知りたい。差分は無料でどこまで見られて、足りない分はいくらで買えるのか。",
  "実測日": "2026-10-19 JST",
  "実測": {
    "caption": "x402 の差分経路の実測（2026-10-19 JST・公開URLへの支払いなしGET・各2回）",
    "columns": [
      "リクエスト",
      "応答",
      "大きさ",
      "応答時間（2回）",
      "中身"
    ],
    "rows": [
      [
        "/pack/diff/sample?from=hist-v1",
        "200",
        "29,532 B",
        "646 / 182 ms",
        "NDJSON 5件。5件とも kind=added。無料"
      ],
      [
        "/pack/diff/sample?from=hist-v1&format=manifest",
        "200",
        "4,513 B",
        "496 / 151 ms",
        "28 added / 0 changed / 1,226 excluded / 0 removed"
      ],
      [
        "/pack/diff/sample（from なし）",
        "400",
        "397 B",
        "137 / 165 ms",
        "unsupported_base_version。取得なし・無料"
      ],
      [
        "/pack/diff/sample?from=nope",
        "400",
        "399 B",
        "163 / 155 ms",
        "unsupported_base_version（未知の版も同じ 400）"
      ],
      [
        "/pack/diff/sample?from=hist-v1&format=nope",
        "400",
        "196 B",
        "114 / 168 ms",
        "invalid_format。支払い前に停止"
      ],
      [
        "/pack/diff?from=hist-v1",
        "402",
        "22,690 B",
        "274 ms（1回）",
        "0.05 USDC の宣言のみ。200 の本文は未取得"
      ],
      [
        "/changes?since=nope",
        "402",
        "21,752 B",
        "155 / 187 ms",
        "0.02 USDC。since が不正でも有効時と同一本文"
      ],
      [
        "/changes?since=2026-10-12",
        "402",
        "21,752 B",
        "213 / 183 ms",
        "0.02 USDC。上と同一 SHA-256（01e0494d…）"
      ],
      [
        "/history?limit=0",
        "402",
        "21,957 B",
        "238 / 149 ms",
        "0.02 USDC。limit が不正でも 402"
      ],
      [
        "/history?limit=99999",
        "402",
        "21,957 B",
        "154 / 226 ms",
        "0.02 USDC。上と同一 SHA-256（87c93d86…）"
      ],
      [
        "/status.json",
        "200",
        "17,337 B",
        "8,801 ms（1回）",
        "無料の納品記録。差分3経路の deliveries を確認"
      ]
    ],
    "note": "無料サンプル2種は2回とも同一 SHA-256（NDJSON 8131759083472699・manifest bcde3a094a05485a）で、内容は決定的でした。/changes の 402 は since の有無・値によらず 21,752 B、/history は limit によらず 21,957 B で、どちらもパラメータを課金前に検証していません。/pack/diff は from なし・format 不正のどちらも 400 で、無料で誤りを直せます。"
  },
  "見出し": [
    "結論：件数は無料、全量は 0.02〜0.05 USDC",
    "無料サンプルの中身",
    "課金前の検証境界：/pack/diff だけが無料で直せる",
    "納品記録から見えること",
    "買う順序"
  ],
  "本文": [
    {
      "見出し": "結論：件数は無料、全量は 0.02〜0.05 USDC",
      "html": "<p>先週からの差分を返す経路は3つあり、価格は <code>/changes</code> と <code>/history</code> が <strong>0.02 USDC</strong>、<code>/pack/diff</code> が <strong>0.05 USDC</strong> です。どれも未払いでは 402 を返すだけで、本文は買えません。しかし <code>/pack/diff/sample</code> は<strong>無料の 200</strong> で、差分レコードそのもの（先頭5件）と manifest（件数の内訳）を返します。</p><p>2026-10-19 の実測では、サンプルは <strong>29,532 B・5件・すべて added</strong>、manifest は <strong>4,513 B・28 added / 0 changed / 1,226 excluded / 0 removed</strong>（base <code>hist-v1</code> → target <code>hist-v2</code>）でした。つまり<strong>「何件増えたか」は無料で分かり、「どの項目がどう変わったか」の全量は 0.02〜0.05 で買う</strong>構造です。</p><p>注意点は、無料サンプルが<strong>先頭5件だけ</strong>で、今回の5件は偶然すべて added だったことです。サンプルだけを見て「差分は追加だけ」と一般化はできません（manifest の changed=0 はこの基準間に限った話です）。</p>"
    },
    {
      "見出し": "無料サンプルの中身",
      "html": "<p><code>/pack/diff/sample?from=hist-v1</code> は <code>application/x-ndjson</code> で5行を返します。各行は <code>diff_kind</code> と <code>target_id</code> を持ち、実測した5件は次の並びでした。</p><ul>\n<li><code>added</code> / <code>catalog.resources</code></li>\n<li><code>added</code> / <code>facilitator.supported</code></li>\n<li><code>added</code> / <code>facilitator.pricing</code></li>\n<li><code>added</code> / <code>tracked.resources</code></li>\n<li><code>added</code> / <code>catalog.resources</code>（同じ id が2回）</li>\n</ul><p>同じ id が2回出るのは、対象が複数の基準（catalog と tracked）に別々に現れているためと推測しますが、<strong>サンプルだけでは区別できません</strong>。5件/28件 = <strong>18%</strong> しか見えていないので、全量の判断は manifest と組み合わせてください。</p><p><code>format=manifest</code> を付けると <code>application/json</code> の1枚（4,513 B）に変わり、<code>records</code>（28）・<code>records_by_diff_kind</code>・<code>excluded_unchanged</code>（1,226）・<code>removed_from_base</code>（0）・<code>base_version</code>・<code>target_version</code> が読めます。<strong>「1,226件は変わっていない」ことまで無料で確認できる</strong>のが、このサンプルの実用的な価値です。</p>"
    },
    {
      "見出し": "課金前の検証境界：/pack/diff だけが無料で直せる",
      "html": "<p>同じ「差分」でも、誤ったパラメータの扱いが経路で違いました。</p><ul>\n<li><code>/pack/diff</code> は <code>from</code> なしでも <code>format=nope</code> でも <strong>400</strong>（397 B / 142 B）。<code>unsupported_base_version</code> と <code>invalid_format</code> を<strong>支払い前に</strong>返すので、綴りを直すのに費用はかかりません。</li>\n<li><code>/changes?since=nope</code> は <strong>402</strong>（21,752 B）で、有効な <code>since=2026-10-12</code> と<strong>同一の本文・同一 SHA-256</strong>。since は課金前に検証されていません。</li>\n<li><code>/history?limit=0</code> と <code>limit=99999</code> も <strong>402</strong>（21,957 B）で同一本文。limit も課金前の検証対象ではありません。</li>\n</ul><p>つまり<strong>「差分の基準や形式を無料で確かめられるのは /pack/diff の入口だけ</strong>で、/changes と /history は<strong>買った後に初めてパラメータの妥当性が分かる</strong>設計です（200 の本文を取っていないので、買った後に 400 になるかは未確認）。日付や件数を試行錯誤したいなら、まず /pack/diff の 400 で形を固めるのが安い順序です。</p>"
    },
    {
      "見出し": "納品記録から見えること",
      "html": "<p>無料の <code>/status.json</code>（17,337 B・8,801 ms）を読むと、差分3経路の実績は対照的でした。</p><ul>\n<li><code>/changes</code>：requests <strong>1,265</strong>・http_402 <strong>1,265</strong>・http_200 <strong>0</strong>・deliveries <strong>null</strong>。呼ばれているが、納品の記録は無い。</li>\n<li><code>/history</code>：requests <strong>1,665</strong>・http_402 1,662・deliveries <strong>26</strong>・purchases_external 1・最終納品 <strong>2026-10-17T05:34:48Z</strong>。</li>\n<li><code>/pack/diff</code>：requests <strong>344</strong>・http_402 <strong>1</strong>・deliveries <strong>1</strong>・purchases_external 1・最終納品 <strong>2026-10-16T16:00:34Z</strong>。</li>\n</ul><p>/pack/diff の 344 回に対して 402 が1回だけなのは、大半が <code>from</code> なしの <strong>400</strong>（無料）だったためです。無料の入口が誤用を吸収しているとも、単に試行が失敗しているとも読めます。いずれにせよ<strong>200 の本文（全28件の形・changed の実際の返り方）は当方では未取得</strong>で、この記事の数字は 402 の宣言と無料サンプルまでです。</p>"
    },
    {
      "見出し": "買う順序",
      "html": "<ul>\n<li><strong>0円</strong>：<code>/pack/diff/sample?from=hist-v1</code> と <code>&amp;format=manifest</code> で、差分の形・件数・除外数を確認する。base や format の誤りもここで直す。</li>\n<li><strong>0.02 USDC</strong>：1週間分の変化だけ欲しいなら <code>/changes</code>。日付の指定が効くかは買う前の 402 からは分からない。</li>\n<li><strong>0.02 USDC</strong>：履歴の一覧が欲しいなら <code>/history</code>。納品実績は26件で、差分3経路では最も多い。</li>\n<li><strong>0.05 USDC</strong>：base/target と除外数まで含む全量の manifest が欲しいなら <code>/pack/diff</code>。無料で形を確かめてから買える唯一の経路。</li>\n</ul><p>差分の取り方の全体は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/ja/catalog-diff\"><code>/ja/catalog-diff</code></a>、価格の相場は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/ja/price-benchmark\"><code>/ja/price-benchmark</code></a>、仕様は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/openapi.json\"><code>/openapi.json</code></a>（66 paths・146,280 B）、納品記録は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/status.json\"><code>/status.json</code></a> で無料です。</p>"
    }
  ],
  "一覧": "https://x402-catalog-history.ai-business-surface.workers.dev/ja"
}
