CLAUDE LABEN
CONFERENCE — 年次開発者会議「Code w/ Claude」が6/22から開催。Claudeを作るチームと直接対話できる場が設けられましたLIMITS — Claude Codeのレート上限が倍増、OpusのAPI上限も引き上げ。安定して規模を出しやすくなりましたDESIGN — Claude Designが更新。デザインシステム整合・Claude Code同期強化・キャンバス直接編集に対応しましたSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応しましたMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますCONFERENCE — 年次開発者会議「Code w/ Claude」が6/22から開催。Claudeを作るチームと直接対話できる場が設けられましたLIMITS — Claude Codeのレート上限が倍増、OpusのAPI上限も引き上げ。安定して規模を出しやすくなりましたDESIGN — Claude Designが更新。デザインシステム整合・Claude Code同期強化・キャンバス直接編集に対応しましたSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応しましたMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられます
記事一覧/API & SDK
API & SDK/2026-06-24上級

上限が倍になった日に決めたこと — 共有APIキーで定期ジョブを束ねる余白予算の設計

レート上限が倍になっても間隔を詰めなかった理由と、共有 API キーで複数の定期ジョブを束ねる『余白予算』の設計を、ヘッダー計測と実コードでまとめました。

Claude API86レート制限4定期実行3キャパシティプランニング運用設計7

プレミアム記事

上限が倍に引き上げられたという知らせを読んで、最初に頭をよぎったのは「では、ジョブの間隔を半分にできるな」という考えでした。Dolice Labs として複数のサイトに毎日決まった時刻で記事を流し込んでいる身としては、詰められる余地はそのまま運用の自由度です。

ところが、手元のログを開いて数分眺めているうちに、その手は止まりました。倍になったのは天井であって、私が実際に消費している量ではありません。詰めてよいかどうかは、天井ではなく「いま床から天井までどれだけ空いているか」で決まります。

この記事は、その日に私自身が引いた線の話です。レート上限を「使い切る対象」ではなく「予算として配る対象」に置き換えると、上限が動いても運用は驚くほど静かになります。共有 API キーで複数の定期ジョブを回している方に向けて、余白を測り、配り、据え置くまでの設計を、実際に使っているコードとともに整理します。

余白を「予算」として扱うと何が変わるか

レート上限の話は、しばしば 429 が出てからの対処、つまり再試行とバックオフの話に偏ります。それは事後の防御です。ここで扱いたいのは事前の配分、つまり「平常時にどこまで使うか」を先に決めておく話です。

両者は似て非なるものです。コストのペース配分は「今月いくらまで使うか」という金額の話で、消費すれば請求が増えます。一方の余白予算は「単位時間あたりの上限の何割まで使うか」という速度の話で、消費しても請求は変わりませんが、使い切ると後続のジョブや再試行が詰まります。

私が予算という言葉を選んだのは、余白が共有資源だからです。共有キーの下では、記事生成ジョブも Stripe のイベント処理も、同じ天井を分け合っています。片方が天井際まで使えば、もう片方は手元の上限が下がったかのように振る舞います。だからこそ、誰がどれだけ使ってよいかを先に決めておく価値があります。

現状をヘッダーから測る

予算を組む前に、いまの消費を知る必要があります。Claude API はレスポンスヘッダーに残量を載せて返してくれるので、推測ではなく実測から始められます。

主に見るのは次のヘッダーです。requests 系と tokens 系がそれぞれ独立して効く点に注意してください。

ヘッダー意味
anthropic-ratelimit-requests-limitその窓でのリクエスト数上限
anthropic-ratelimit-requests-remaining残りリクエスト数
anthropic-ratelimit-requests-reset残量が回復する時刻(RFC3339)
anthropic-ratelimit-tokens-limitその窓でのトークン上限
anthropic-ratelimit-tokens-remaining残りトークン数
anthropic-ratelimit-tokens-resetトークン残量が回復する時刻
retry-after429 のとき、待つべき秒数

まずは、すべての呼び出しの直後にこれらを記録する薄い層を一枚かませます。SDK のレスポンスからヘッダーを取り、構造化して残すだけの関数です。

// ratelimit.ts — レスポンスヘッダーから残量を読み取る
type RateSnapshot = {
  at: string;          // 計測時刻 (ISO)
  job: string;         // どのジョブか
  reqLimit: number;
  reqRemaining: number;
  reqResetSec: number; // reset までの秒数
  tokLimit: number;
  tokRemaining: number;
  tokResetSec: number;
};
 
function secUntil(iso: string | null): number {
  if (!iso) return 0;
  const ms = new Date(iso).getTime() - Date.now();
  return Math.max(0, Math.round(ms / 1000));
}
 
export function readSnapshot(job: string, headers: Headers): RateSnapshot {
  const num = (k: string) => Number(headers.get(k) ?? "0");
  return {
    at: new Date().toISOString(),
    job,
    reqLimit: num("anthropic-ratelimit-requests-limit"),
    reqRemaining: num("anthropic-ratelimit-requests-remaining"),
    reqResetSec: secUntil(headers.get("anthropic-ratelimit-requests-reset")),
    tokLimit: num("anthropic-ratelimit-tokens-limit"),
    tokRemaining: num("anthropic-ratelimit-tokens-remaining"),
    tokResetSec: secUntil(headers.get("anthropic-ratelimit-tokens-reset")),
  };
}

SDK 経由でヘッダーへ届く方法はクライアントによって異なりますが、生レスポンスを受け取れる形(withResponse 相当)で一度だけ呼び、そこからヘッダーを取り出すのが確実です。ここで得た RateSnapshot を、後段の会計と予算判断の両方で使います。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
anthropic-ratelimit-* ヘッダーから requests と tokens の残量・reset を読み、ジョブ別に消費を会計する実装
平常時に上限の何割まで使うか(目安70%)と、再試行・手動実行・バーストに残す余白を式で決める方法
上限が2倍になっても予算を据え置いた判断と、reset ウィンドウ・トークン上限先行・429 の帰属で踏んだ落とし穴
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-06-22
Claude Files API のファイルが知らぬ間に溜まる — 内容ハッシュ台帳で重複を止め、孤児を回収する
自動パイプラインで Files API を使うと、同じファイルが何度もアップロードされ孤児ファイルが静かに溜まります。内容ハッシュ台帳での重複排除と、参照されなくなったファイルの GC 設計を実装例つきで解説します。
API & SDK2026-06-17
Claude API のマルチテナント SaaS で「請求が合わない」を消す — テナント分離とコスト帰属の実装メモ
Claude API の SaaS をマルチテナント化したとき最初に壊れるのはコスト帳尻です。計測の単一窓口・原子的カウンター・Anthropic 請求との突合・テナント分離の敵対的検証まで、本番で動く TypeScript と運用判断を実装メモとしてまとめます。
API & SDK2026-06-23
思考が常時オンのモデルに移すと、プレフィルが静かに効かなくなる — Fable 5 でストリーミングとトークン予算を直した記録
Fable 5 は思考が常時オンです。プレフィルが使えない・ストリーミングの先頭ブロックがテキストではない・max_tokens に思考分の余白が要る、という三つの前提崩れを、自分の自動投稿パイプラインで直した実装メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →