CLAUDE LABEN
CONNECTORS — Enterpriseの管理型MCPコネクタにコネクタ可観測性(public beta)が加わり、採用状況・エラー・レイテンシ・使用量を監視できますDIRECTORY — 作成したMCPコネクタをClaudeから直接ディレクトリへ申請できるようになりましたSLACK — Team・EnterpriseではSlackの会話内でClaudeをタグ付けし、タスクを委任できますENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までですCONNECTORS — Enterpriseの管理型MCPコネクタにコネクタ可観測性(public beta)が加わり、採用状況・エラー・レイテンシ・使用量を監視できますDIRECTORY — 作成したMCPコネクタをClaudeから直接ディレクトリへ申請できるようになりましたSLACK — Team・EnterpriseではSlackの会話内でClaudeをタグ付けし、タスクを委任できますENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までです
記事一覧/API & SDK
API & SDK/2026-07-07上級

Claude API が本番で突然 429 を返し始めたとき — レート制限の余白をヘッダから計測して枯渇前に絞る運用メモ

429 が出てから慌ててリトライを入れるのは後手です。Claude API のレスポンスヘッダには残量が毎回書かれています。余白を継続計測し、枯渇する前に自分から絞る運用メモを、実装フックと計測ログの読み方でまとめます。

Claude API105レート制限64293ヘッダスロットリングコスト帰属2本番運用34

プレミアム記事

429 は前触れなく来たように見えて、実はずっと予告されていました。

あるバッチが走った夜、本番のワーカーが立て続けに 429 Too Many Requests を返し始めました。私が最初にやったのは、よくある対応です。指数バックオフを入れ、リトライ回数を増やした。翌朝、エラーは減っていましたが、代わりに処理が詰まって全体の遅延が伸び、月次のトークン請求も跳ねていました。リトライは問題を先送りしただけで、根っこには触れていなかったのです。

見落としていたのは、Claude API がレスポンスのたびに「あとどれだけ送れるか」を教えてくれていた事実でした。429 を受け取ってから反応するのは、常に後手です。このメモは、レート制限の余白を毎リクエスト計測し、枯渇する前に自分から発信を絞るまでの運用記録です。個人開発で回している小さな基盤での話ですが、私自身が同じ罠に二度はまりたくないので手順として残します。考え方は規模を問いません。

429 を待つ設計が後手になる理由

レート制限の対応には二つの立ち位置があります。反応型(429 が来たら待つ)と、先制型(余白が細ったら自分で絞る)です。多くの実装は前者から始まります。私もそうでした。

反応型の弱点は、429 が「もう手遅れ」の合図だという点です。制限に達した瞬間、その時点で走っている並列リクエストはまとめて弾かれます。バックオフで待てば個々のリクエストは救えますが、同じ制限窓に殺到した全員が待たされ、全体のスループットは階段状に落ちます。しかもリトライは同じトークンを二度・三度消費するため、請求はむしろ増える方向に働きます。

先制型は、制限に達する前に発信量を自分で調整します。そのために必要なのは、いま自分がどれだけ制限に近づいているかを知る手段です。それはすでに手元にあります。

余白はレスポンスヘッダに毎回書かれている

Claude API は 200 応答にも、レート制限の状態をヘッダで返します。主に見るのは残量と復帰時刻です。

ヘッダ意味使い方
anthropic-ratelimit-requests-remainingこの窓で残り送れるリクエスト数件数ベースの余白
anthropic-ratelimit-tokens-remaining残り送れる入力トークン量の目安トークンベースの余白(実務ではこちらが先に枯れる)
anthropic-ratelimit-tokens-resetトークン枠が回復する時刻(ISO)絞る時間の見積もり
retry-after429 時に待つべき秒数反応型の最後の砦

大事なのは、これらが 429 のときだけでなく成功応答にも載っていることです。つまり平時から余白の推移を観測できます。私はこれを「残量」ではなく「余白率」に変換して扱うことにしました。上限に対する残りの割合にすれば、枠の大きさが違うテナント間でも同じ物差しで比べられます。

// src/lib/rateLimitMeter.ts
// レスポンスヘッダから余白率を算出し、逼迫を検知する軽量メーター
 
type Headroom = {
  requestsRemaining: number;
  tokensRemaining: number;
  tokensReset: number | null; // epoch ms
  tokensHeadroom: number;     // 0.0(枯渇) 〜 1.0(潤沢)
};
 
// 上限は組織のプランに応じて設定(観測した最大残量を初期値にしてもよい)
const TOKEN_LIMIT = Number(process.env.ANTHROPIC_TOKEN_LIMIT ?? 200000);
 
export function readHeadroom(headers: Headers): Headroom {
  const tokensRemaining = Number(
    headers.get('anthropic-ratelimit-tokens-remaining') ?? TOKEN_LIMIT
  );
  const requestsRemaining = Number(
    headers.get('anthropic-ratelimit-requests-remaining') ?? 0
  );
  const resetRaw = headers.get('anthropic-ratelimit-tokens-reset');
 
  return {
    requestsRemaining,
    tokensRemaining,
    tokensReset: resetRaw ? new Date(resetRaw).getTime() : null,
    tokensHeadroom: Math.max(0, Math.min(1, tokensRemaining / TOKEN_LIMIT)),
  };
}

余白率という一つの数字に落とせば、あとはそれが細ったときにどう振る舞うかを決めるだけです。

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

この記事の続きを読む

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

この記事で得られること
anthropic-ratelimit-tokens-remaining ヘッダから余白率を毎リクエスト算出する軽量フックの実装
余白 30%/10% の二段閾値で発信側を先回りに絞り、429 を週百数十件から一桁に落とす先制スロットル設計
テナント/ジョブ別にトークン消費と逼迫を帰属させ、暴走した再処理ジョブを名指しで止める計測ログの読み方
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API & SDK2026-06-17
Claude API のマルチテナント SaaS で「請求が合わない」を消す — テナント分離とコスト帰属の実装メモ
Claude API の SaaS をマルチテナント化したとき最初に壊れるのはコスト帳尻です。計測の単一窓口・原子的カウンター・Anthropic 請求との突合・テナント分離の敵対的検証まで、本番で動く TypeScript と運用判断を実装メモとしてまとめます。
API & SDK2026-07-01
Claude API のドキュメント抽出が「自信満々に間違える」とき — 沈黙する誤りを不変条件で捕まえる運用メモ
請求書や契約書の構造化抽出で一番怖いのは、クラッシュではなく「スキーマも通り信頼度も高いのに値だけ間違っている」沈黙の誤りです。不変条件・二段抽出・フィールド単位の誤り率で運用する実装メモを共有します。
API & SDK2026-06-30
「同じ 429」が経路ごとに違う顔で返る — Claude を Anthropic 直叩きと Azure Foundry の二経路で安全に回す
Claude が Microsoft Foundry でも一般提供されたことで、直叩きと Azure 経由の二経路が現実的になりました。同じ 429 が経路ごとに違う形で返る問題を、正規化エラー型と retry-after の両形式パースで畳む実装をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →