ガイド

アプリにClaude APIを組み込む方法

Claude APIを組み込むには、AnthropicのClaude Consoleでキーを作成し、サーバー側のシークレット(通常は ANTHROPIC_API_KEY)として保存したうえで、自分のサーバー上のルートから、Anthropicの公式SDKのいずれかを使ってMessages APIを呼び出します。各リクエストでは、model(モデル)を指定し、max_tokens(受け取る返信の最大長)を設定し、会話をmessagesとして送ります。指示内容は別のsystemプロンプトに書きます。利用上限を設定し、長い返信はストリーミングで受け取り、レート制限(429)や過負荷(529)のエラーにはリトライで対応してください。

このガイドでは、セットアップ、安全なリクエストの流れ、AIビルダー向けのプロンプト、想定しておくべきエラーを扱います。Anthropicの詳細は、2026年9月時点のドキュメントに基づいています。トークンと料金の一般的な仕組みについては、LLM APIの使い方を参照してください。

作れるもの

  • チャットアシスタントやヘルプウィジェット(AIチャットボットアプリの作り方)
  • 要約、言い換え、返信の下書き
  • 文書、メール、フォームからの項目の抽出
  • 自社のコンテンツに基づく質問への回答
  • ツール利用(tool use)を通じて、アプリの関数を呼び出すエージェント

その他のアイデアは、アプリにAI機能を追加する方法をご覧ください。

Messages APIの概要

AnthropicのAPIリファレンスによると、リクエストは https://api.anthropic.com/v1/messages への POST で、次の内容を含みます。

項目内容
x-api-key ヘッダーAPIキー
anthropic-version ヘッダーAPIのバージョン(例:2023-06-01)
model(必須)使用するClaudeのモデル
max_tokens(必須)返信に含めてよいトークンの上限。モデルはそれより前に止まることがあります
messages(必須)会話。user と assistant のターンを交互に並べたもの
system(任意)会話全体に適用される指示
stream(任意)true にすると、サーバー送信イベントで、返信が書かれるそばから受け取れます

APIはステートレスです。会話を続けるには、リクエストのたびに過去のターンを送り直す必要があります。だからこそ、長い会話ほど1メッセージあたりのコストが増えます。

Anthropicは、Python、TypeScript、C#、Go、Java、PHP、Rubyの公式SDKを提供しています。SDKはヘッダーを設定し、レスポンスを解析し、ストリーミングにも対応しています。特別な理由がなければ、生のHTTPではなくSDKを使ってください。

モデルの選び方

Anthropicは、能力、速度、価格のバランスが異なる複数のClaudeモデルを提供しており、そのラインアップは変わります。タスクをうまくこなせる中で最も小さいモデルを選び、実際の例でテストしてください。モデルIDは設定で管理し、コードを変えずに切り替えられるようにしておくとよいです。現在のモデルと料金は、Anthropicのモデル・料金ページで確認してください。

アカウントのセットアップ

  1. platform.claude.com の Claude Console にサインインし、課金情報を追加します。
  2. APIキーを作成します。 テスト用と本番用でキーを分け、一方を無効化してももう一方に影響が出ないようにしてください。
  3. 利用上限を設定します。 Anthropicのエラーページでは、設定した利用上限に達すると、APIが400エラーを返すと説明されています。アプリはその場合に、わかりやすいメッセージを表示する必要があります。
  4. Consoleで、アカウントのレート制限を確認します。レート制限は組織単位で計測されます。

リクエストの流れ

  1. ユーザーがアプリで操作する。メッセージを送る、「要約」をクリックする、などです。
  2. ブラウザが、Anthropicではなく自分のサーバーのルートを呼び出す。
  3. サーバーが、ユーザーがログインしていて、その機能の利用が許可されているかを確認し、ユーザーごとの上限を適用する。
  4. リクエストを組み立てる。ルールを書いたシステムプロンプト、ユーザーの入力、タスクに必要なデータベース上のデータを含めます。
  5. 環境変数のキーを使い、適切な max_tokens を指定して、Messages APIを呼び出す。
  6. 返信をブラウザにストリーミングし、レスポンスからトークン使用量を記録する。

選択肢とトレードオフ

判断シンプルな選択さらに検討する場合
ストリーミング返信の全体を待つチャットや長い返信にはストリーミングを使う。Anthropicは長時間かかるリクエストにはストリーミングまたはバッチを推奨
出力形式プレーンテキストコードで項目を読み取る必要がある場合は、構造化されたJSON出力
自分のデータ関連するレコードを含める量が多すぎる場合は、コンテンツに対する検索を使う(RAGとは)
アクションモデルは文章を書くだけツール利用。モデルが、自分で定義した関数の実行をコードに依頼する
大量の、急がない処理項目をループで処理するMessage Batches API。送信して、後から結果を取得する

AIビルダーに与えるプロンプト

最初の機能の例:

「この文書について質問する」パネルを追加してください。POST /api/ask というサーバーのルートを呼び出し、そのルートでユーザーがログインしていて文書の所有者であることを確認します。その後、公式のAnthropic SDKとシークレット ANTHROPIC_API_KEY を使って、Claude Messages APIを呼び出してください。モデルIDはシークレット CLAUDE_MODEL から読み込みます。システムプロンプトは「回答は提供された文書だけに基づいてください。文書に答えがない場合は、その旨を伝えてください。」とします。文書の本文と質問を送り、max_tokens は800に設定し、回答はページにストリーミングしてください。キーがブラウザに露出しないようにしてください。

ガードレールとエラー処理:

各ユーザーの質問を1時間あたり20件に制限し、その記録はデータベースに保存してください。各レスポンスの入力トークンと出力トークンを、ユーザーIDとリクエストIDと一緒に記録してください。429または529のエラーが出た場合は、retry-after ヘッダーを尊重しながら、指数バックオフで最大3回リトライし、それでも失敗したら「アシスタントが混み合っています。しばらくしてから再度お試しください。」と表示してください。APIが利用上限のエラーを返した場合は、「AI機能は一時停止中です」と表示し、管理者に通知してください。

想定しておくべきエラー

Anthropicのエラーのドキュメントに基づき、アプリが実際に遭遇しやすいものは次のとおりです。

コード種類対処
400invalid_request_errorリクエストを修正する。自分で設定した利用上限に達したときにも返されます
401authentication_errorキーが存在し、正しく、無効化されていないかを確認する
413request_too_large送信量を減らす。Messages APIは1リクエストあたり最大32 MBまで受け付けます
429rate_limit_errorretry-after を尊重して、待ってからリトライする
500api_error指数バックオフでリトライする。続く場合はリクエストIDを添えてサポートに連絡する
529overloaded_errorすべてのユーザーのアクセス集中による一時的な過負荷。待ってリトライする

Anthropicのドキュメントによると、公式SDKは一時的な失敗(接続エラー、レート制限、5xxエラー)を、デフォルトで指数バックオフにより2回まで自動的にリトライします。この動作は設定で変更できます。すべてのレスポンスには request-id ヘッダーが付いています。サポートが問題を追跡できるように、それを記録しておいてください。

よくあるミス

  • ブラウザからAPIを呼び出す。 キーが公開されてしまいます。必ずサーバー経由にしてください。APIキーを安全に保つ方法を参照してください。
  • max_tokens は上限であって目標値ではないことを忘れる。 機能に必要な分だけ設定してください。小さすぎると回答が途中で切れ、大きすぎると長く、コストの高い返信になります。
  • ルールをユーザーのメッセージに書く。 変わらない指示は system プロンプトに入れ、権限はコードで管理します。
  • 会話全体を永遠に送り続ける。 会話が長くなったら、古いターンを切り詰めるか要約してください。
  • 利用上限やユーザーごとの上限を設定しない。
  • モデルIDを直接コードに書き込む。 モデルは更新され、廃止されることもあります。
  • 停止理由を無視する。 返信が max_tokens に達して止まった場合は、ユーザーに伝えるか、上限を上げてください。

チェックリスト

  • Claude Consoleでキーを作成し、サーバー側のシークレットとして保存している
  • テスト用と本番用でキーを分けている
  • 利用上限を設定し、上限に達したときのメッセージを用意している
  • すべてのリクエストは、権限チェック付きで自分のサーバーを経由する
  • ルールはシステムプロンプトに書き、モデルIDは設定で変更できる
  • 機能ごとに max_tokens を設定し、長い返信はストリーミングしている
  • アプリ側でユーザーごとのレート制限を設けている
  • 429と529をバックオフで処理し、リクエストIDを記録している
  • ページを壊さない、わかりやすいエラー表示になっている
  • 空の入力、非常に長い入力、悪意のある入力でテストしている

Mythexで Claude API を使う

Mythexで作るアプリでは、Claudeの機能は自分のAnthropicキーを使い、料金はMythexのビルドクレジットではなく、自分のAnthropicアカウントに請求されます。これは、コードを書くMythexのエージェントとは別物です。ANTHROPIC_API_KEY は /secrets、プロジェクト設定、またはチャット内のシークレットカードから、プロジェクトのシークレットとして追加してください。その後、上記のようなプロンプトを使って機能を説明します。公開中のアプリでシークレットを変更したら、再度公開して反映させてください。スターター用のプロンプトは、自分のAPIキーでAI機能を追加するを参照してください。プロバイダーを比較している場合は、同じ内容をOpenAIについて扱ったOpenAI APIの組み込み方法もご覧ください。

よくある質問

Claude APIのキーはどのように取得しますか?

Claude Console(platform.claude.com)にサインインし、課金を設定してからAPIキーを作成します。キーはサーバー側のシークレットとして保存してください。慣例的な名前は ANTHROPIC_API_KEY です。ブラウザ側のコードに入れてはいけません。

Claude APIへのリクエストには何が必要ですか?

2026年9月時点で、AnthropicのMessages APIリファレンスでは、必須のボディ項目は model、max_tokens、messages の3つです。HTTPで直接呼び出す場合は、x-api-key と anthropic-version のヘッダーも必要です。公式SDKを使えば、これらは自動で設定されます。

Claude APIの529エラーとは何ですか?

Anthropicのエラーページでは、529 は overloaded_error と説明されています。すべてのユーザーのアクセス集中により、APIが一時的に過負荷になっている状態です。指数バックオフでリトライしてください。公式SDKは一部の一時的なエラーを自動でリトライします。

OpenAI SDK用に書かれたコードでClaudeを使えますか?

Anthropicは、OpenAI SDKの形式でClaudeを利用できる互換レイヤーを提供しています。新しく書くコードであれば、Claude固有の機能を使える公式SDKの方が通常は適しています。

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)