できること
ファイルを一度送り再利用
ファイルを Anthropic の secure storage にアップロードすると、固有の file_id が返ります。以後の Messages リクエストでは、内容を送り直す代わりにこの file_id で参照できます。
保存したファイルの管理
アップロード済みのファイルは、list・retrieve・delete の操作で管理できます。一覧取得では、ページネーションと、最大 100 件の ID を指定する ids[] を使えます。
生成ファイルの取得
skills やコード実行ツールが作成したファイルをダウンロードできます。自分でアップロードしたファイルはダウンロードできません。
機能解説
概要
リクエストのたびに同じ内容を送り直す必要はありません。アップロードしたファイルは file_id で Messages リクエストから参照します。コード実行ツールと組み合わせると、データセットや文書を入力として渡し、グラフなどの出力をダウンロードできます。
Files API でアップロードしたファイルは、file_id を使って Messages リクエストから参照します。リクエストごとに内容を送り直す必要はありません。
ファイルの種類によって、対応する content block が異なります。
- PDF とプレーンテキスト:
documentcontent block - 画像:
imagecontent block - データセットなどその他のファイル:
container_uploadcontent block
保存したファイルは、list・retrieve・delete の操作で管理します。
有効期限とファイルのライフサイクル
ファイルは、DELETE /v1/files/{file_id} エンドポイントで削除するか、expires_at に達するまで保持されます。削除したファイルは復元できません。
- アップロード後にファイルを変更したり、名前を変えたりすることはできません。内容を変えるには、新しいファイルをアップロードし、古いファイルを削除します。
- 自動で失効させるには、アップロード時に
expires_in_secondsのフォームフィールド (3,600 から 7,776,000 までの整数) を含めます。ファイルオブジェクトはexpires_atを返します。 - 有効期限はアップロード時に一度だけ設定でき、後から変更できません。
expires_atに達したファイルを参照する Messages リクエストは、推論の前に失敗します。
一覧の取得とダウンロード
ファイル一覧のエンドポイントはページネーションに対応しており、1 回のリクエストで limit 件 (既定は 20 件、最大 1,000 件) までを新しい順に返します。ページの移動には page と next_page を使います。
特定のファイル群をまとめて確認するときは、最大 100 件のファイル ID を ids[] クエリパラメーターとして渡せます。ids[] は page や limit と組み合わせられません。
コード実行ツールが生成したファイルの file_id は、それを作成した Messages 応答の bash_code_execution_tool_result content block に含まれます。この file_id を使い、GET /v1/files/$FILE_ID/content または ant files download --file-id "$FILE_ID" --output downloaded_file.txt でダウンロードします。Claude API では、コード実行ツールで Claude が生成した対応形式の画像・動画・音声ファイル (skills が作成したファイルを含む) に、ダウンロード時に署名付きの C2PA Content Credentials が付きます。
管理者・導入時に確認したい点
- アップロードしたファイルは、エンドユーザー・会話・セッション単位で区切られません。ワークスペースにアクセスできる API キーであれば、そのワークスペースにアップロードされたどのファイルにもアクセスできます。
- 組織で Compliance API を有効にしている場合、Activity Feed には Files API のアップロード、内容のダウンロード、削除が記録されます。ファイル一覧の取得とメタデータの取得は記録されません。
- 削除したファイルは復元できません。
使い方
POST https://api.anthropic.com/v1/filesにファイルを送ってアップロードします。CLI ではant files upload --file /path/to/document.pdfも使えます。- アップロードの応答に含まれる
idをfile_idとして content block (たとえば source type がfileの document block) に渡し、Messages リクエストからファイルを参照します。
利用シーン
コード実行ツールにデータセットや文書を渡し、生成されたグラフなどを受け取る分析作業に向いています。
同じ PDF や文書を複数のリクエストで繰り返し参照する用途に使えます。
一時的に使う資料を、expires_in_seconds で有効期限を付けて置いておく場面に使えます。
ChatGPT・OpenAI の対応する機能
公式リリースノートでは、対応する発表を確認できていません (2026-11-03 時点)。 これは、対応する機能が存在しないことを示すものではありません。
これまでの変更
Python SDK 1.2.0、TypeScript SDK 0.122.0、Go SDK 1.68.0、Java SDK 2.59.0、Ruby SDK 1.67.0、C# SDK 12.44.0 で、
client.beta.filesはfiles-api-2025-04-14ベータヘッダーを送らなくなり、client.filesと同じ形式を返すようになりました。ベータヘッダーを送り続けるリクエストは、ベータの形式を受け取り続けます。Files API が Claude API でベータを終了しました。
/v1/filesエンドポイントへのリクエストと、アップロード済みファイルを参照する Messages API リクエストに、files-api-2025-04-14ベータヘッダーは不要になりました。ヘッダーなしのリクエストは現行のレスポンス形式となり、expires_in_secondsによる有効期限の指定、ファイル一覧でのpage・next_pageのページネーションとids[]フィルターが使えます。ベータヘッダーを送り続ける/v1/filesリクエストも動作し、以前のレスポンス形式を返します。
ベータ版から移行する手順は次のとおりです。
1. リクエストから anthropic-beta: files-api-2025-04-14 ヘッダーを外します。
2. after_id/before_id によるループを page/next_page のカーソルに置き換えるか、SDK の自動ページネーション機能を使います。
3. expires_at フィールドを読み取ります。このフィールドはベータヘッダーなしの場合だけ現れ、null は有効期限が無いことを示します。