Claude Skills APIは、2026年8月20日より一般提供(GA)を開始しました。`https://api.anthropic.com/v1/skills`を通じて、標準ヘッダーとベータ版フラグ不要で、カスタムスキルを作成、バージョン管理、管理し、Claudeのコードサンドボックス内で何もホストすることなく実行できます。Anthropicは、コンピューター利用、新しいブラウザツール、Files APIとともにGAを一斉にリリースし、発表では、これらをClaude Platform上でエージェントを構築するための本番スタックとして位置づけています。
スキルという概念が初めての方には、弊社のClaude Skillsガイドがその概念を基礎から解説しています。この記事では、APIレイヤー、つまりエンドポイント、バージョン管理モデル、Messagesコールにスキルをロードするリクエスト形式、そしてGA化によってまだ研ぎ澄まされていない鋭い部分(ワークスペースのスコープ設定、スナップショットバージョン管理)について説明します。すべてがプレーンなHTTPであるため、以下のすべての呼び出しは、あなたの進行に合わせてApidogで構築し、回帰テストを行うことができます。
30秒でわかるスキルとは何か
スキルとはフォルダです。最上位には、`name`と`description`を持つYAMLフロントマターを含む`SKILL.md`ファイルが配置され、その周りには、タスクが必要とするスクリプト、テンプレート、参照ファイルが含まれます。リクエストにスキルが含まれている場合、Claudeはタスクが必要とするときにのみ指示をロードし、バンドルされたスクリプトをサンドボックス化されたコード環境で実行します。
フロントマターには実際の検証ルールがあります:
name: 最大64文字、小文字の英字、数字、ハイフンのみ。XMLタグは不可で、「anthropic」と「claude」は予約語として拒否されます。description: 空であってはならず、最大1024文字。- オプションの
display_name(最大255文字)は、人間が読みやすいものにすることができます。 - アップロード全体は、非圧縮で30MB未満である必要があります。
スキルには2つのソースがあります。Anthropicが管理するスキル(type: "anthropic")は、`pptx`、`xlsx`、`docx`、`pdf`のような短いIDでプレビルドされ、`20251013`のような日付ベースのバージョンを使用します。カスタムスキル(type: "custom")はあなたのもので、API経由でアップロードされ、あなたのワークスペースにプライベートであり、`skill_01AbCdEfGhIjKlMnOpQrStUv`のような生成されたIDを持ちます。
GAで実際に変更された点
2026年8月20日現在、以下の3つの点が新しくなりました、または強化されました:
- ベータヘッダー不要。 Skills APIは、Claude APIで`x-api-key`と`anthropic-version: 2023-06-01`のみで動作します。
- よりシンプルなアップロードとバージョン管理フロー。 AnthropicはGAを、カスタムスキルの「よりシンプルなアップロードとバージョン管理のためのAPI」をもたらすものとして説明しています。バージョンは、独自のエンドポイントを持つ第一級リソースです。
- より多くのプラットフォーム。 Skills APIは、Claude APIだけでなくMicrosoft Foundry経由でも利用できます。スキルはClaudeの管理されたサンドボックスで実行されるため、あなたの側でインフラストラクチャを用意する必要はありません。
GAの残りの変更点もスキルユーザーにとって重要です。スキルは頻繁にファイル(デッキ、入力済みのスプレッドシート)を生成し、これらの出力は新しくGA化されたFiles APIを通じて返されます。
エンドポイントの概要
すべては/v1/skillsの下にあります:
| 操作 | エンドポイント |
|---|---|
| スキルの作成 | POST /v1/skills |
| スキルのリスト表示 | GET /v1/skills |
| スキルの取得 | GET /v1/skills/{skill_id} |
| スキルの削除 | DELETE /v1/skills/{skill_id} |
| 新しいバージョンの作成 | POST /v1/skills/{skill_id}/versions |
| バージョンのリスト表示 | GET /v1/skills/{skill_id}/versions |
スキルを作成すると、その完全なファイルセットがアップロードされます。バージョンを作成する場合も、既存のスキルIDに対して同じことが行われます。Apidogプロジェクトでは、これは`{{skill_id}}`と`{{skill_version}}`を環境変数として持つ6つの保存済みリクエストの1つのフォルダにきれいにマッピングされるため、開発環境と本番環境で新しいバージョンを昇格させることは、リクエストの編集ではなく、変数の変更で行えます。
カスタムスキルのアップロード
最小限のカスタムスキルは、フォルダとアップロード呼び出しの2つです。例えば、リポジトリにブランドレポートスキルを保持しているとします:
brand-report/
SKILL.md
templates/report.html
scripts/build_report.py
`SKILL.md`が次のように始まる場合:
---
name: brand-report
description: Generates the weekly brand performance report as a formatted HTML document from a CSV of metrics. Use when asked for a brand report, weekly summary deck, or performance writeup.
---
ファイルをマルチパートフォームデータとして投稿してアップロードします:
curl -X POST https://api.anthropic.com/v1/skills \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-F 'files[]=@brand-report/SKILL.md;filename=brand-report/SKILL.md' \
-F 'files[]=@brand-report/templates/report.html;filename=brand-report/templates/report.html' \
-F 'files[]=@brand-report/scripts/build_report.py;filename=brand-report/scripts/build_report.py'
応答として、生成された`skill_id`と最初のバージョンの`skver_*` IDが返されます。両方を保存してください。スキルIDはMessagesリクエストで使用され、バージョンIDはロールバックの基準となります。ほとんどの言語で型付きSDKヘルパーがこの呼び出しをラップしているため、SDKのバージョンに応じてSkills APIリファレンスで正確なマルチパートフィールド名を確認してください。
説明に注目してください。まるでルーティングルールのように読めます。Claudeはそのフィールドを読み取ってスキルをロードするかどうかを決定するため、ユーザーが発するトリガーフレーズをリストアップした説明は、常に一行のラベルよりも優れています。
Messagesリクエストでのスキルの使用
スキルは単独でリクエストにアタッチされるわけではありません。`container`パラメーターを通じて宣言されるコード実行ツールに依存します:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
container={
"skills": [
{"type": "anthropic", "skill_id": "pptx", "version": "latest"},
{"type": "custom", "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv", "version": "latest"}
]
},
messages=[{"role": "user", "content": "Build the Q3 revenue deck from the attached numbers"}],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)
このブロックを管理するルール:
- **コード実行ツールを`tools`で有効にする必要があります。** スキルはそのサンドボックス内で実行されるためです。モデルのサポートは、コード実行ツールの互換性リストに従います。
- **1リクエストあたり最大20スキル。** Claudeは各スキルの説明を読み取り、タスクが必要とするスキルのみの指示をロードします。
- **バージョン固定はあなたが制御します。** `"latest"`は最新バージョンに自動的に更新されます。固定された`skver_*` ID(またはAnthropicスキルの日付バージョン)は動作を固定します。本番環境では固定し、開発環境では最新版を使用します。
スキルがドキュメントを生成すると、応答には`file_id`が含まれ、Files APIの`GET /v1/files/{file_id}/content`を通じてダウンロードできます。この2つのAPIのハンドシェイク(生成のためのSkills、取得のためのFiles)が、本番環境のコアとなるループです。
バージョン管理:差分ではなくスナップショット
バージョン管理モデルは、ほとんどのチームが最初の試行で間違いやすい部分です。新しいバージョンは完全なスナップショットであり、差分ではありません。`POST /v1/skills/{skill_id}/versions`を実行すると、スキルのファイルセット全体を再度アップロードします。省略されたファイルは以前のバージョンから引き継がれません。新しいバージョンの`SKILL.md`内の`name`も、スキルの既存の名前と一致する必要があります。
スキルフォルダをビルド成果物のように扱います。リポジトリに真のソースを保持し、CIでフォルダ全体をパッケージ化し、新しいバージョンとしてプッシュします。古いバージョンは`skver_*` IDでアドレス指定可能であり、本番環境でのインシデントは1つの文字列を再固定するだけで修正できるため、ロールバックは簡単です。
ワークスペースのスコープ設定:マルチテナントの落とし穴
カスタムスキルは、ワークスペース全体でアクセス可能です。これらはエンドユーザー、会話、またはセッションにスコープされず、ワークスペース内のすべてのAPIキーがそれらを共有します。テナントが独自のスキルをアップロードするマルチテナント製品を運営している場合、1つのワークスペースではデータ漏洩が発生する可能性があります。
Files APIと同じ解決策です。テナントごとに個別のワークスペースを作成します。ワークスペースが分離境界となり、各組織はアカウントチームと相談することなく最大100のワークスペースを利用できます。キー、ファイル、スキルはすべてその境界を継承するため、1つの決定でこれら3つすべてを分離できます。
長時間実行されるスキル:`pause_turn`とコンテナの再利用
スキルの実行は、単一のモデルターンよりも長く続くことがあります。これを処理する2つのメカニズムがあります:
- `pause_turn`:応答が`stop_reason: "pause_turn"`で停止した場合、アシスタントのコンテンツをメッセージ履歴に追加し、同じ`container.id`を渡して再度呼び出します。サンドボックスは中断したところから再開します。
- コンテナの再利用:`container`オブジェクトは以前の応答からの`id`を受け入れ、インストールされたファイルと状態を複数ターンの会話全体で維持します。これにより、スキルはターン1でスプレッドシートを作成し、ターン3で最初から再生成することなくそれを修正できます。
どちらのパターンもステートフルなHTTPシーケンスであり、手動でテストするのは手間がかかりますが、Apidogシナリオとしてテストするには最適です。リクエスト1は`stop_reason`をアサートし、スクリプトが`container.id`を変数に渡し、リクエスト2がそれを再利用し、最後のステップで生成された`file_id`がクリーンにダウンロードされることをアサートします。Apidog CLIはCIで同じシナリオを実行するため、スキルのバージョンアップによってパイプラインが密かに破損することはありません。比較のために、他のベンダーのエコシステム内でスキルがどのように動作するかを見たい場合は、以前のレビューでPostmanのClaudeスキルを分解しました。
実行場所
GAにおいて、Skills APIはClaude APIおよびMicrosoft Foundryを通じて利用可能です。スキルはAnthropicのサンドボックス内で実行されるため、「デプロイ」はアップロードであり、コンテナイメージ、ランタイムパッチ、スケーリング制御はあなたの側にはありません。プラットフォーム依存ではなくモデル依存に注意してください。リクエストは、上記の例の`claude-opus-5`のように、コード実行ツールがサポートするモデルを使用する必要があります。初めての方には、弊社のClaude Opus 5 APIガイドがそのモデルのリクエストの基本を解説しています。
よくある質問
スキルベータ版ヘッダーはまだ必要ですか? いいえ。2026年8月20日以降、`/v1/skills`および`container.skills`パラメーターは、Claude APIで標準ヘッダーと共に動作します。SDKをアップグレードする際には、固定されたベータ版フラグを削除してください。
スキルは実行中に外部APIを呼び出すことができますか? スキルは、コード実行ツールのネットワーク制約内でClaudeのコードサンドボックス内で実行されます。オープンなエグレスを前提とするのではなく、スキルが必要とするものをフォルダにバンドルし、API呼び出しロジックは適切にテストできるアプリケーション層に保持してください。
1つのリクエストでいくつのスキルをロードできますか? 最大20個です。Claudeは各スキルの`description`フロントマターを読み取り、タスクが必要とするスキルを決定します。したがって、説明は重要です。マーケティングコピーではなく、ルーティングルールのように記述してください。
これとClaude Codeスキルとの違いは何ですか? 同じ概念ですが、異なるランタイムです。Claude Codeはファイルシステム上のスキルフォルダを発見しますが、Skills APIはそれらをサーバー側でバージョン管理してMessages API呼び出しのためにホストします。`SKILL.md`フロントマターを含むフォルダ形式は共有されているため、Claude Code用に作成したスキルは通常、ほとんど変更なく移植できます。
まとめ
GAは、スキルを実験から運用可能なものへと変えます。6つのエンドポイント、スナップショットバージョン管理、ワークスペース分離、そして出力のためのFiles APIへのクリーンな引き渡しが特徴です。最も早く価値を得るチームは、スキルを他のデプロイ可能な成果物と同様に扱います。これは、CIでのパッケージング、本番環境でのバージョン固定、コンテナライフサイクルに関する自動テストを意味します。Apidogで6つのエンドポイントをモデル化し、バージョンアップをテストシナリオに組み込めば、ユーザーが気づく前に、スキルの悪いバージョンがデッキジェネレーターを壊したことを知ることができます。Apidogを無料でダウンロードして、午後のうちにハーネスを構築しましょう。
