Was this page helpful?
Files APIを使用すると、リクエストごとにコンテンツを再アップロードすることなく、Claude APIで使用するファイルをアップロードおよび管理できます。これは、コード実行ツールを使用して入力(例:データセットとドキュメント)を提供し、出力(例:チャート)をダウンロードする場合に特に便利です。Files APIを使用して、複数のAPI呼び出しで頻繁に使用されるドキュメントと画像を継続的に再アップロードする必要がないようにすることもできます。このガイドに加えて、APIリファレンスを直接探索することもできます。
Files APIはベータ版です。フィードバックフォームを通じてFiles APIの使用経験を共有してください。
This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.
Messages リクエストで file_id を参照することは、指定されたファイルタイプをサポートするすべてのモデルでサポートされています。例えば、画像はすべてのClaude 3+モデルでサポートされており、PDFはすべてのClaude 3.5+モデルでサポートされており、その他のさまざまなファイルタイプはClaude Haiku 4.5およびすべてのClaude 3.7+モデルのコード実行ツールでサポートされています。
Files APIは現在、Amazon BedrockまたはGoogle Vertex AIではサポートされていません。
Files APIは、ファイルを操作するためのシンプルな「一度アップロード、何度も使用」アプローチを提供します:
file_id を受け取りますfile_id を使用し、コンテンツを再アップロードする代わりに使用しますFiles APIを使用するには、ベータ機能ヘッダーを含める必要があります:anthropic-beta: files-api-2025-04-14。
将来のAPI呼び出しで参照するためにファイルをアップロードします:
ファイルをアップロードしたときのレスポンスには以下が含まれます:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}アップロード後、その file_id を使用してファイルを参照します:
Files APIは、異なるコンテンツブロックタイプに対応する異なるファイルタイプをサポートしています:
| ファイルタイプ | MIMEタイプ | コンテンツブロックタイプ | ユースケース |
|---|---|---|---|
application/pdf | document | テキスト分析、ドキュメント処理 | |
| プレーンテキスト | text/plain | document | テキスト分析、処理 |
| 画像 | image/jpeg, image/png, image/gif, image/webp | image | 画像分析、ビジュアルタスク |
| データセット、その他 |
document ブロックとしてサポートされていないファイルタイプ(.csv、.txt、.md、.docx、.xlsx)の場合、ファイルをプレーンテキストに変換し、コンテンツをメッセージに直接含めます:
画像を含む.docxファイルの場合、まずPDF形式に変換してから、PDFサポートを使用して組み込みの画像解析を活用してください。これにより、PDFドキュメントから引用を使用できます。
PDFとテキストファイルの場合、document コンテンツブロックを使用します:
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // オプション
"context": "Context about the document", // オプション
"citations": { "enabled": true } // オプション、引用を有効にします
}画像の場合、image コンテンツブロックを使用します:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}アップロードされたファイルのリストを取得します:
特定のファイルに関する情報を取得します:
ワークスペースからファイルを削除します:
スキルまたはコード実行ツールによって作成されたファイルをダウンロードします:
ダウンロードできるのは、スキルまたはコード実行ツール](/docs/ja/agents-and-tools/tool-use/code-execution-tool)によって作成されたファイルのみです。アップロードしたファイルはダウンロードできません。
Messages API呼び出しと関連するツール使用に保持される可能性がありますFiles APIを通じてアップロードされたファイルは、DELETE /v1/files/{file_id} エンドポイントを使用して明示的に削除されるまで保持されます。ファイルは複数のAPI要求全体で再利用するために保存されます。
すべての機能にわたるZDR適格性については、APIとデータ保持を参照してください。
Files APIを使用する場合の一般的なエラーには以下が含まれます:
file_id が存在しないか、アクセス権がありません/v1/messages リクエストで500 MBのプレーンテキストファイルを使用)<、>、:、"、|、?、*、\、/、またはユニコード文字0~31)を含んでいます{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}File API操作は無料です:
Messages リクエストで使用されるファイルコンテンツは入力トークンとして価格設定されます。ダウンロードできるのは、スキルまたはコード実行ツール](/docs/ja/agents-and-tools/tool-use/code-execution-tool)によって作成されたファイルのみです。
ベータ期間中:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please summarize this document for me."},
{
"type": "document",
"source": {
"type": "file",
"file_id": file_id,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)| 異なる |
container_upload |
| データ分析、ビジュアライゼーション作成 |
import pandas as pd
# 例:CSVファイルを読み込む
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# メッセージ内でプレーンテキストとして送信
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the CSV data:\n\n{csv_content}\n\nPlease analyze this data.",
}
],
}
],
)
print(response.content[0].text)client = anthropic.Anthropic()
files = client.beta.files.list()file = client.beta.files.retrieve_metadata(file_id)result = client.beta.files.delete(file_id)file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")